Documentation/fSDN/eNetFpgaTutorial: netfpga-session-2011.03.10-from-scratch-NetFPGA-Openflow.txt

File netfpga-session-2011.03.10-from-scratch-NetFPGA-Openflow.txt, 952.9 KB (added by nkiran, 10 years ago)
Line 
1 INFO exp: Progress(0/0/1): 10/10/10 min(n_1_1)/avg/max (78) - Timeout: 670 sec.
2 INFO exp: Progress(0/0/1): 10/10/10 min(n_1_1)/avg/max (78) - Timeout: 660 sec.
3 INFO exp: Progress(0/0/1): 20/20/20 min(n_1_1)/avg/max (78) - Timeout: 650 sec.
4 INFO exp: Progress(0/0/1): 20/20/20 min(n_1_1)/avg/max (78) - Timeout: 640 sec.
5 INFO exp: Progress(0/0/1): 20/20/20 min(n_1_1)/avg/max (78) - Timeout: 630 sec.
6 INFO exp: Progress(0/0/1): 30/30/30 min(n_1_1)/avg/max (78) - Timeout: 620 sec.
7 INFO exp: Progress(0/0/1): 30/30/30 min(n_1_1)/avg/max (78) - Timeout: 610 sec.
8 INFO exp: Progress(0/0/1): 30/30/30 min(n_1_1)/avg/max (78) - Timeout: 600 sec.
9 INFO exp: Progress(0/0/1): 40/40/40 min(n_1_1)/avg/max (78) - Timeout: 590 sec.
10 INFO exp: Progress(0/0/1): 40/40/40 min(n_1_1)/avg/max (78) - Timeout: 580 sec.
11 INFO exp: Progress(0/0/1): 40/40/40 min(n_1_1)/avg/max (78) - Timeout: 570 sec.
12 INFO exp: Progress(0/0/1): 50/50/50 min(n_1_1)/avg/max (78) - Timeout: 560 sec.
13 INFO exp: Progress(0/0/1): 50/50/50 min(n_1_1)/avg/max (78) - Timeout: 550 sec.
14 INFO exp: Progress(0/0/1): 50/50/50 min(n_1_1)/avg/max (78) - Timeout: 540 sec.
15 INFO exp: Progress(0/0/1): 60/60/60 min(n_1_1)/avg/max (78) - Timeout: 530 sec.
16 INFO exp: Progress(0/0/1): 60/60/60 min(n_1_1)/avg/max (78) - Timeout: 520 sec.
17 INFO exp: Progress(0/0/1): 60/60/60 min(n_1_1)/avg/max (78) - Timeout: 510 sec.
18 INFO exp: Progress(0/0/1): 70/70/70 min(n_1_1)/avg/max (78) - Timeout: 500 sec.
19 INFO exp: Progress(0/0/1): 70/70/70 min(n_1_1)/avg/max (78) - Timeout: 490 sec.
20 INFO exp: Progress(0/0/1): 70/70/70 min(n_1_1)/avg/max (78) - Timeout: 480 sec.
21 INFO exp: Progress(0/0/1): 80/80/80 min(n_1_1)/avg/max (78) - Timeout: 470 sec.
22 INFO exp: Progress(0/0/1): 80/80/80 min(n_1_1)/avg/max (78) - Timeout: 460 sec.
23 INFO exp: Progress(0/0/1): 80/80/80 min(n_1_1)/avg/max (78) - Timeout: 450 sec.
24 INFO exp: Progress(0/0/1): 90/90/90 min(n_1_1)/avg/max (78) - Timeout: 440 sec.
25 INFO exp: Progress(0/0/1): 90/90/90 min(n_1_1)/avg/max (78) - Timeout: 430 sec.
26 INFO exp: Progress(0/0/1): 90/90/90 min(n_1_1)/avg/max (78) - Timeout: 420 sec.
27 INFO exp: Progress(1/0/1): 100/100/100 min()/avg/max (78) - Timeout: 410 sec.
28 INFO exp: -----------------------------
29 INFO exp: Imaging Process Done
30 INFO exp: - 1 node(s) successfully imaged - See the topology file: '/tmp/sb9.orbit-lab.org_2011_03_10_09_21_13_topo_active.rb'
31 INFO exp: -----------------------------
32 INFO Experiment: DONE!
33 INFO NodeHandler: Shutting down experiment, please wait...
34 INFO NodeHandler: Shutdown flag is set - Turning Off the resources
35 INFO run: Experiment sb9.orbit-lab.org_2011_03_10_09_21_13 finished after 6:31
36nkiran@console:~$ omf stat
37 INFO NodeHandler: init OMF Experiment Controller 5.2.408
38-----------------------------------------------
39 INFO Topology: Loading topology 'system:topo:all'.
40 Testbed : sb9.orbit-lab.org
41 Node n_1_1 - State: POWEROFF
42 Node n_1_2 - State: POWERON
43 Node n_1_3 - State: POWERON
44 Node n_1_4 - State: POWERON
45 Node n_1_5 - State: POWEROFF
46 Node n_1_6 - State: POWEROFF
47 Node n_1_7 - State: NODE NOT AVAILABLE
48 Node n_1_8 - State: NODE NOT AVAILABLE
49-----------------------------------------------
50nkiran@console:~$ omf stat[K[K[K[Ktell on "1,1"
51
52 INFO NodeHandler: init OMF Experiment Controller 5.2.408
53---------------------------------------------------
54 Testbed : sb9.orbit-lab.org - Command: on
55 Node n_1_1 - Ok
56---------------------------------------------------
57nkiran@console:~$ ssh 1
58ssh: connect to host node1-1 port 22: No route to host
59
60nkiran@console:~$ ssh 1
61Last login: Wed Mar 9 20:17:28 2011 from consolec.sb9.orbit-lab.org
62
63]0;root@node1-1.sb9.orbit-lab.org: ~root@node1-1:~# ifconfig -a
64control Link encap:Ethernet HWaddr 00:15:17:d6:da:4b
65 inet addr:10.19.1.1 Bcast:10.19.255.255 Mask:255.255.0.0
66 inet6 addr: fe80::215:17ff:fed6:da4b/64 Scope:Link
67 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
68 RX packets:65 errors:0 dropped:0 overruns:0 frame:0
69 TX packets:76 errors:0 dropped:0 overruns:0 carrier:0
70 collisions:0 txqueuelen:1000
71 RX bytes:10638 (10.6 KB) TX bytes:11396 (11.3 KB)
72 Memory:febe0000-fec00000
73
74exp0 Link encap:Ethernet HWaddr 00:15:17:d6:da:4a
75 BROADCAST MULTICAST MTU:1500 Metric:1
76 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
77 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
78 collisions:0 txqueuelen:1000
79 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
80 Memory:feb80000-feba0000
81
82lo Link encap:Local Loopback
83 inet addr:127.0.0.1 Mask:255.0.0.0
84 inet6 addr: ::1/128 Scope:Host
85 UP LOOPBACK RUNNING MTU:16436 Metric:1
86 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
87 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
88 collisions:0 txqueuelen:0
89 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
90
91nf2c0 Link encap:Ethernet HWaddr 00:4e:46:32:43:00
92 BROADCAST MULTICAST MTU:1500 Metric:1
93 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
94 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
95 collisions:0 txqueuelen:1000
96 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
97 Interrupt:16
98
99nf2c1 Link encap:Ethernet HWaddr 00:4e:46:32:43:01
100 BROADCAST MULTICAST MTU:1500 Metric:1
101 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
102 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
103 collisions:0 txqueuelen:1000
104 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
105 Interrupt:16
106
107nf2c2 Link encap:Ethernet HWaddr 00:4e:46:32:43:02
108 BROADCAST MULTICAST MTU:1500 Metric:1
109 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
110 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
111 collisions:0 txqueuelen:1000
112 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
113 Interrupt:16
114
115nf2c3 Link encap:Ethernet HWaddr 00:4e:46:32:43:03
116 BROADCAST MULTICAST MTU:1500 Metric:1
117 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
118 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
119 collisions:0 txqueuelen:1000
120 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
121 Interrupt:16
122
123]0;root@node1-1.sb9.orbit-lab.org: ~root@node1-1:~#
124[Kroot@node1-1:~# ls
125[0m[01;31momf-common-5.2_ubuntu2_all.deb[0m
126[m]0;root@node1-1.sb9.orbit-lab.org: ~root@node1-1:~# exit
127logout
128Connection to node1-1 closed.
129
130nkiran@console:~$ ssh 1n1e1t1f1p1g1a1@1
131netfpga@node1-1's password:
132Last login: Wed Mar 9 18:24:12 2011 from consolec.sb9.orbit-lab.org
133
134]0;netfpga@node1-1: ~netfpga@node1-1:~$ cl[K[Kls
135[0m[01;34mnetfpga[0m [01;34mpkgs[0m
136[m]0;netfpga@node1-1: ~netfpga@node1-1:~$ clear
137[H[2J]0;netfpga@node1-1: ~netfpga@node1-1:~$ ls
138[0m[01;34mnetfpga[0m [01;34mpkgs[0m
139[m]0;netfpga@node1-1: ~netfpga@node1-1:~$ pwd
140/home/netfpga
141]0;netfpga@node1-1: ~netfpga@node1-1:~$ ls
142[0m[01;34mnetfpga[0m [01;34mpkgs[0m
143[m]0;netfpga@node1-1: ~netfpga@node1-1:~$
144[K]0;netfpga@node1-1: ~netfpga@node1-1:~$ /usr/local/sbin/cpci_reprogram.pl --all
145Error: /usr/local/sbin/cpci_reprogram.pl must be run as root at /usr/local/sbin/cpci_reprogram.pl line 36.
146]0;netfpga@node1-1: ~netfpga@node1-1:~$ /usr/local/sbin/cpci_reprogram.pl --all[1@s[1@u[1@d[1@o[1@
147Loading the CPCI Reprogrammer on NetFPGA 0
148Loading the CPCI on NetFPGA 0
149CPCI on NetFPGA 0 has been successfully reprogrammed
150]0;netfpga@node1-1: ~netfpga@node1-1:~$ vi /usr/local/netfpga/[K[K[K[K[K[K[K[K[K[K[K[K[K[K[K[K[K[K[K[K[K[Kvi /etc/rc.local
151[?1049h[?1h=[1;24r[?12;25h[?12l[?25h[27m[m[H[2J[?25l[24;1H"/etc/rc.local" [readonly] 14L, 306C[>c[1;1H[34m#!/bin/sh -e
152#
153# rc.local
154#
155# This script is executed at the end of each multiuser runlevel.
156# Make sure that the script will "exit 0" on success or any other
157# value on error.
158#
159# In order to enable or disable this script just change the execution
160# bits.
161#
162# By default this script does nothing.[m
163
164[33mexit[m [31m0[m
165[1m[34m~ [16;1H~ [17;1H~ [18;1H~ [19;1H~ [20;1H~ [21;1H~ [22;1H~ [23;1H~ [m[24;63H1,1[11CAll[1;1H[?12l[?25hP+q436f\P+q6b75\P+q6b64\P+q6b72\P+q6b6c\P+q2332\P+q2334\P+q2569\P+q2a37\P+q6b31\P+q6b32\[27m[m[H[2J[?25l[1;1H[34m#!/bin/sh -e
166#
167# rc.local
168#
169# This script is executed at the end of each multiuser runlevel.
170# Make sure that the script will "exit 0" on success or any other
171# value on error.
172#
173# In order to enable or disable this script just change the execution
174# bits.
175#
176# By default this script does nothing.[m
177
178[38;5;130mexit[m [31m0[m
179[94m~ [16;1H~ [17;1H~ [18;1H~ [19;1H~ [20;1H~ [21;1H~ [22;1H~ [23;1H~ [m[24;63H1,1[11CAll
180"/etc/rc.local" [readonly] 14L, 306C[24;63H[K[24;63H1,1[11CAll[1;1H[?12l[?25hP+q6b33\[?25l[?12l[?25hP+q6b34\P+q6b35\P+q6b36\P+q6b37\P+q6b38\P+q6b39\P+q6b3b\P+q4631\P+q4632\P+q2531\P+q2638\P+q6b62\P+q6b49\P+q6b44\P+q6b68\P+q4037\P+q6b50\P+q6b4e\P+q4b31\P+q4b33\P+q4b34\P+q4b35\P+q6b42\[?25l[24;63H2[2;1H[?12l[?25h[?25l[24;63H3[3;1H[?12l[?25h[?25l[24;63H4[4;1H[?12l[?25h[?25l[24;63H5[5;1H[?12l[?25h[?25l[24;63H6[6;1H[?12l[?25h[?25l[24;63H7[7;1H[?12l[?25h[?25l[24;63H8[8;1H[?12l[?25h[?25l[24;63H9[9;1H[?12l[?25h[?25l[24;63H10,1[10;1H[?12l[?25h[?25l[24;64H1[11;1H[?12l[?25h[?25l[24;64H2[12;1H[?12l[?25h[?25l[24;64H3,0-1[13;1H[?12l[?25h[?25l[24;64H4,1 [14;1H[?12l[?25h[?25l[24;64H3,0-1[13;1H[?12l[?25h[?25l[24;64H2,1 [12;1H[?12l[?25h[?25l[24;1H[31mW10: Warning: Changing a readonly file[m[24;63H[K[24;1H[1m-- INSERT --[m[24;13H[K[24;63H13,1[10CTop[13;23r[13;1H[L[1;24r[24;63H[K[24;63H13,1[10CAll[13;1H[?12l[?25h[24;1H[K[13;1H[?25l[24;63H13,0-1[8CAll[13;1H[?12l[?25h[?25l[24;63H[K[24;1H:[?12l[?25hq[?25l[?12l[?25h![?25l[?12l[?25h
181[?25l[24;1H[K[24;1H[?1l>[?12l[?25h[?1049l]0;netfpga@node1-1: ~netfpga@node1-1:~$ vi /etc/rc.local [1@s[1@u[1@d[1@o[1@
182[?1049h[?1h=[1;24r[?12;25h[?12l[?25h[27m[m[H[2J[?25l[24;1H"/etc/rc.local" 14L, 306C[>c[1;1H[34m#!/bin/sh -e
183#
184# rc.local
185#
186# This script is executed at the end of each multiuser runlevel.
187# Make sure that the script will "exit 0" on success or any other
188# value on error.
189#
190# In order to enable or disable this script just change the execution
191# bits.
192#
193# By default this script does nothing.[m
194
195[33mexit[m [31m0[m
196[1m[34m~ [16;1H~ [17;1H~ [18;1H~ [19;1H~ [20;1H~ [21;1H~ [22;1H~ [23;1H~ [m[24;63H1,1[11CAll[1;1H[?12l[?25hP+q436f\P+q6b75\P+q6b64\P+q6b72\P+q6b6c\P+q2332\P+q2334\P+q2569\P+q2a37\P+q6b31\P+q6b32\[27m[m[H[2J[?25l[1;1H[34m#!/bin/sh -e
197#
198# rc.local
199#
200# This script is executed at the end of each multiuser runlevel.
201# Make sure that the script will "exit 0" on success or any other
202# value on error.
203#
204# In order to enable or disable this script just change the execution
205# bits.
206#
207# By default this script does nothing.[m
208
209[38;5;130mexit[m [31m0[m
210[94m~ [16;1H~ [17;1H~ [18;1H~ [19;1H~ [20;1H~ [21;1H~ [22;1H~ [23;1H~ [m[24;63H1,1[11CAll
211"/etc/rc.local" 14L, 306C[24;63H[K[24;63H1,1[11CAll[1;1H[?12l[?25hP+q6b33\[?25l[?12l[?25hP+q6b34\P+q6b35\P+q6b36\P+q6b37\P+q6b38\P+q6b39\P+q6b3b\P+q4631\P+q4632\P+q2531\P+q2638\P+q6b62\P+q6b49\P+q6b44\P+q6b68\P+q4037\P+q6b50\P+q6b4e\P+q4b31\P+q4b33\P+q4b34\P+q4b35\P+q6b42\[?25l[24;1H[K[24;1H:[?12l[?25h$[?25l[?12l[?25h
212[?25l[62C14,1[10CAll[14;1H[?12l[?25h[?25l[24;64H3,0-1[13;1H[?12l[?25h[?25l[24;1H[1m-- INSERT --[m[24;63H[K[24;63H13,1[10CAll[13;1H[?12l[?25h[?25l /usr/local/netfpga/lib/scripts/cpci_reprogram/cpci[24;66H53[13;53H[?12l[?25h[?25li_reprogram.pl [35m--all[m[24;66H7[13;73H[?12l[?25h[24;1H[K[13;72H[?25l[24;63H13,72[9CAll[13;72H[?12l[?25h[?25l[24;66H3 [13;3H[?12l[?25h[?25l[24;66H2[13;2H[?12l[?25h[?25l[24;66H1[13;1H[?12l[?25h[?25l/usr/local/netfpga/lib/scripts/cpci_reprogram/cpci_reprogram.pl [35m--all[m [13;71H[K[13;1H[?12l[?25h[?25l[24;63H[K[24;1H:[?12l[?25hw[?25l[?12l[?25h
213[?25l"/etc/rc.local" 14L, 376C written[29C13,1[10CAll[24;63H[K[24;63H13,1[10CAll[13;1H[?12l[?25h[?25l[?12l[?25h[?25l[24;64H2[12;1H[?12l[?25h[?25l[24;64H1[11;1H[?12l[?25h[?25l[24;64H2[12;1H[?12l[?25h[?25l[24;64H3[13;1H[?12l[?25h[?25l[24;1H[K[24;1H:[?12l[?25hw[?25l[?12l[?25hq[?25l[?12l[?25h
214[?25l"/etc/rc.local" 14L, 376C written
215
216
217[?1l>[?12l[?25h[?1049l]0;netfpga@node1-1: ~netfpga@node1-1:~$ for i in `seq 0 3`; do ifconfig nf2c$i up; done
218Command 'ifconfig' is available in '/sbin/ifconfig'
219The command could not be located because '/sbin' is not included in the PATH environment variable.
220This is most likely caused by the lack of administrative priviledges associated with your user account.
221ifconfig: command not found
222Command 'ifconfig' is available in '/sbin/ifconfig'
223The command could not be located because '/sbin' is not included in the PATH environment variable.
224This is most likely caused by the lack of administrative priviledges associated with your user account.
225ifconfig: command not found
226Command 'ifconfig' is available in '/sbin/ifconfig'
227The command could not be located because '/sbin' is not included in the PATH environment variable.
228This is most likely caused by the lack of administrative priviledges associated with your user account.
229ifconfig: command not found
230Command 'ifconfig' is available in '/sbin/ifconfig'
231The command could not be located because '/sbin' is not included in the PATH environment variable.
232This is most likely caused by the lack of administrative priviledges associated with your user account.
233ifconfig: command not found
234]0;netfpga@node1-1: ~netfpga@node1-1:~$ sudo vi /etc/rc.local ^[[B
235[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[9Pvi /etc/rc.local [K[K[K[K[K[K[K[K[K[K[K[K[K[K[K[K[Ksudos [K[K su -
236]0;root@node1-1.sb9.orbit-lab.org: ~root@node1-1:~# exit
237logout
238]0;netfpga@node1-1: ~netfpga@node1-1:~$ sudo bash
239]0;root@node1-1: ~root@node1-1:~# for i in `seq 0 3`; do ifconfig nf2c$i up; done
240]0;root@node1-1: ~root@node1-1:~# ifconfig
241control Link encap:Ethernet HWaddr 00:15:17:d6:da:4b
242 inet addr:10.19.1.1 Bcast:10.19.255.255 Mask:255.255.0.0
243 inet6 addr: fe80::215:17ff:fed6:da4b/64 Scope:Link
244 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
245 RX packets:759 errors:0 dropped:0 overruns:0 frame:0
246 TX packets:503 errors:0 dropped:0 overruns:0 carrier:0
247 collisions:0 txqueuelen:1000
248 RX bytes:86985 (86.9 KB) TX bytes:74292 (74.2 KB)
249 Memory:febe0000-fec00000
250
251lo Link encap:Local Loopback
252 inet addr:127.0.0.1 Mask:255.0.0.0
253 inet6 addr: ::1/128 Scope:Host
254 UP LOOPBACK RUNNING MTU:16436 Metric:1
255 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
256 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
257 collisions:0 txqueuelen:0
258 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
259
260nf2c0 Link encap:Ethernet HWaddr 00:4e:46:32:43:00
261 UP BROADCAST MULTICAST MTU:1500 Metric:1
262 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
263 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
264 collisions:0 txqueuelen:1000
265 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
266 Interrupt:16
267
268nf2c1 Link encap:Ethernet HWaddr 00:4e:46:32:43:01
269 UP BROADCAST MULTICAST MTU:1500 Metric:1
270 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
271 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
272 collisions:0 txqueuelen:1000
273 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
274 Interrupt:16
275
276nf2c2 Link encap:Ethernet HWaddr 00:4e:46:32:43:02
277 UP BROADCAST MULTICAST MTU:1500 Metric:1
278 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
279 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
280 collisions:0 txqueuelen:1000
281 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
282 Interrupt:16
283
284nf2c3 Link encap:Ethernet HWaddr 00:4e:46:32:43:03
285 UP BROADCAST MULTICAST MTU:1500 Metric:1
286 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
287 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
288 collisions:0 txqueuelen:1000
289 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
290 Interrupt:16
291
292]0;root@node1-1: ~root@node1-1:~# ls
293[0m[01;34mnetfpga[0m [01;34mpkgs[0m
294[m]0;root@node1-1: ~root@node1-1:~# ~[K
295]0;root@node1-1: ~root@node1-1:~# netfpga/projects/selftest/sw/selftest -n
296Found net device: nf2c0
297Error: Incorrect bitfile loaded. Found 'cpci_reprogrammer' (CPCI Reprogrammer), expecting: 'selftest'
298]0;root@node1-1: ~root@node1-1:~# nf_dwo[K[Kownload netfpga/bn[Kitfiles/selftest.bit
299Found net device: nf2c0
300Bit file built from: nf2_top_par.ncd;HW_TIMEOUT=FALSE
301Part: 2vp50ff1152
302Date: 2011/ 1/20
303Time: 14:36:45
304Error Registers: 0
305Good, after resetting programming interface the FIFO is empty
306Download completed - 2377668 bytes. (expected 2377668).
307DONE went high - chip has been successfully programmed.
308CPCI Information
309----------------
310Version: 4 (rev 1)
311
312Device (Virtex) Information
313---------------------------
314Project directory: selftest
315Project name: Selftest
316Project description: NetFPGA selftest -- exercises all major subsystems of the board
317
318Device ID: 5
319Version: 1.1.0
320Built against CPCI version: 4 (rev 1)
321
322Virtex design compiled against active CPCI version
323]0;root@node1-1: ~root@node1-1:~#
324]0;root@node1-1: ~root@node1-1:~# ~/netfpga/projects/selftest/sw/selftest -n [C[C[C[C[1P[1P[1P[1P
325Found net device: nf2c0
326CPCI Information
327----------------
328Version: 4 (rev 1)
329
330Device (Virtex) Information
331---------------------------
332Project directory: selftest
333Project name: Selftest
334Project description: NetFPGA selftest -- exercises all major subsystems of the board
335
336Device ID: 5
337Version: 1.1.0
338Built against CPCI version: 4 (rev 1)
339
340NetFPGA selftest 1.00 alpha
341Running..... FAILED. Failing tests: PHY interface
342]0;root@node1-1: ~root@node1-1:~# less netfpga/projects/selftest/sw/selftest
343"netfpga/projects/selftest/sw/selftest" may be a binary file. See it anyway?
344[?1049h[?1h=
345[7m^?[27mELF[7m^A^A^A^@^@^@^@^@^@^@^@^@^B^@^C^@^A^@^@^@[27m@[7m<96>^D^H[27m4[7m^@^@^@[27ml[7m<E1>^@^@^@^@^@^@[27m4
346[7m^@[27m [7m^@^H^@[27m([7m^@[27m&[7m^@[27m#[7m^@^F^@^@^@[27m4[7m^@^@^@[27m4[7m<80>^D^H[27m4[7m<80>^D^H^@^A^@^@^@^A^@^@^E^@^@^@^D^@[27m
347[7m^@^@^C^@^@^@[27m4[7m^A^@^@[27m4[7m<81>^D^H[27m4[7m<81>^D^H^S^@^@^@^S^@^@^@^D^@^@^@^A^@^@^@^A^@^@^@^@[27m
348[7m^@^@^@^@<80>^D^H^@<80>^D^H^P[27mf[7m^@^@^P[27mf[7m^@^@^E^@^@^@^@^P^@^@^A^@^@^@<B4>[27mn[7m^@^@<B4>[27m
349[7m<FE>^D^H<B4><FE>^D^H[27mP[7m^M^@^@<BC>^N^@^@^F^@^@^@^@^P^@^@^B^@^@^@<C8>[27mn[7m^@^@<C8><FE>^D[27m[7m^H<C8><FE>^D^H<D8>^@^@^@<D8>^@^@^@^F^@^@^@^D^@^@^@^D^@^@^@[27mH[7m^A^@^@[27mH[7m<81>^D^H[27mH[7m<81>[27m
350[7m^D^H[27mD[7m^@^@^@[27mD[7m^@^@^@^D^@^@^@^D^@^@^@[27mQ[7m<E5>[27mtd[7m^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@[27m
351[7m^@^F^@^@^@^D^@^@^@[27mR[7m<E5>[27mtd[7m<B4>[27mn[7m^@^@<B4><FE>^D^H<B4><FE>^D^H[27mL[7m^A^@^@[27mL[7m^A^@^@^D^@^@^@[27m[7m^A^@^@^@[27m/lib/ld-linux.so.2[7m^@^@^D^@^@^@^P^@^@^@^A^@^@^@[27mGNU[7m^@^@^@^@^@^B^@^@^@^F^@[27m
352[7m^@^@^O^@^@^@^D^@^@^@^T^@^@^@^C^@^@^@[27mGNU[7m^@<8B>[27mgW[7m<9B>[27m^[7m<CE>[27mHR[7m<FB>[27mC[7m<A1><C0><A3><D2>[27m2[7m^_[27mR[7m<DD><FE><86>[27mC[7m^@^@^@[27m^[7m^@^@^@^@^@^@^@^K^@^@^@[27m%[7m^@^@^@^@^@^@^@[27mN[7m^@^@^@^@^@^@^@^@^@[27m
353[7m^@^@[27m6[7m^@^@^@[27m'[7m^@^@^@^@^@^@^@[27mR[7m^@^@^@[27m][7m^@^@^@^]^@^@^@[27m=[7m^@^@^@[27m@[7m^@^@^@[27m9[7m^@^@^@[27m;[7m^@^@^@^@^@[27m[7m^@^@^@^@^@^@^@^@^@^@^@^@^@^@[27m-[7m^@^@^@[27m([7m^@^@^@[27mZ[7m^@^@^@^Q^@^@^@[27m/[7m^@^@^@[27mB[7m^@^@^@[27mK[7m^@^@^@[27m0
354[7m^@^@^@[27mL[7m^@^@^@^M^@^@^@^@^@^@^@^P^@^@^@[27m)[7m^@^@^@[27m1[7m^@^@^@[27m[[7m^@^@^@[27m*[7m^@^@^@^@^@^@^@^S^@^@[27m
355[7m^@[27m8[7m^@^@^@^A^@^@^@[27m2[7m^@^@^@[27m?[7m^@^@^@^X^@^@^@^@^@^@^@[27m"[7m^@^@^@^@^@^@^@[27m4[7m^@^@^@[27m<[7m^@^@^@[27mH[7m^@[27m
356[7m^@^@^E^@^@^@[27mW[7m^@^@^@[27m3[7m^@^@^@[27mY[7m^@^@^@[27m5[7m^@^@^@^@^@^@^@[27m7[7m^@^@^@^@^@^@^@^@^@^@^@[27m:[7m^@^@^@[27mG
357[7m^@^@^@^Z^@^@^@^O^@^@^@^V^@^@^@[27m.[7m^@^@^@[27mJ[7m^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@[27m[7m^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^G^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^B^@[27m[7m^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@[27m [7m^@^@^@^H^@^@^@^@^@^@^@^@^@^@^@^@^@[27m[7m^@^@^@^@^@^@^@^@^@^@[27m>[7m^@^@^@^F^@^@^@^U^@^@^@[27mO[7m^@^@^@^Y^@^@^@^C^@^@^@^@^@^@^@^@^@^@[27m[7m^@^_^@^@^@[27m![7m^@^@^@^@^@^@^@[27mC[7m^@^@^@^@^@^@^@[27mA[7m^@^@^@^@^@^@^@[27mE[7m^@^@^@^@^@^@^@ESC^@^@^@[27m#[7m^@^@^@^@^@^@^@[27mT[7m^@^@^@[27m+[7m^@^@^@^R^@^@^@^@^@^@^@^@^@^@^@^^^@^@^@^@^@^@^@^@^@^@^@[27m&[7m^@[27m
358[7m^@^@[27m,[7m^@^@^@[27mI[7m^@^@^@[27m [7m^@^@^@^W^@^@^@[27mV[7m^@^@^@[27m\[7m^@^@^@^@^@^@^@^@^@^@^@[27mD[7m^@^@^@[27mX[7m^@^@^@^@[27m
359[7mnetfpga/projects/selftest/sw/selftest [27m[K
360[K[7m^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@[27mQ[7m^@^@^@^@^@^@^@^@^@^@^@^N^@^@^@[27mM[7m^@^@^@^@^@[27m[7m^@^@[27m$[7m^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^T^@^@^@[27mP[7m^@^@^@[27mF[7m^@^@^@^@^@^@^@^@^@^@[27m
361[7m^@^@^@^@^@^L^@^@^@[27mS[7m^@^@^@[27mU[7m^@^@^@^@^@^@^@[27m
362[7m^@^@^@^D^@^@^@^\^@^@^@^Q^@^@^@[27m=[7m^@^@^@^H^@^@^@^H^@^@^@<80>[27m
363`@I [7m^D[27m")[7m^R^D^W^A[27m@[7m^@^B^A[27m [7m^L[27m([7m^D<89>[27mj8[7m^^^Q<C8>^D<8C>[27m@=[7m^@^@^@[27m>[7m^@^@^@[27mA[7m^@^@^@[27mC[7m^@^@[27m[7m^@[27mI[7m^@^@^@[27mM[7m^@^@^@[27mO[7m^@^@^@[27mQ[7m^@^@^@[27mS[7m^@^@^@[27mT[7m^@^@^@[27mU[7m^@^@^@^@^@^@^@[27mX[7m^@^@^@^@^@^@^@[27mY[7m^@^@[27m
364[7m^@[27m[[7m^@^@^@[27m][7m^@^@^@[27m+[7m<86><EA><85><EA><D3><EF>^N<BE><B2><85><F7><91>[27m]r[7m<B1><D8>[27m+[7m<8C>^\[27m¹[7m<B9><8D><F1>^N<D4>[27mm[7m<A1><96><86>[27m+[7m<E3><C2>[27mXz[7m<BC><B7><C4>[27m\J[7m^_[27m [7m<A3><87>^M<D9>[27mqX[7m^\[27m
365[7m<AC>[27mK[7m<E3><C0>[27mx[7m^@<D1>[27mu[7m^^^R<BB><E3><92>[27m|
366[7m<DE><F7>^R<E7><BE>[27mH|@[7m<9C>^U^T<C7>[27mLt[7m<B1>[27m8[7m<F2><8B>^\[27mCE[7m<D5><EC><C1><B3><F7>^R<C3>[27m
367[7m<F2>[27mD[7m^_<E2>[27m&@7[7m^V[27m'[7m<83>[27m|[7m<B3><A2><F7>^R[27mS[7m<C9>[27mH[7m^_[27mX[7m<CC>[27m[7o[7m<F9>[27mb[7m<CB><F6><E3>[27m_[7m<8F><F3>[27mҊ
368[7m<AD>[27m)[7m^]<8C>^\^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<C4>^A^@^@^@^@^@^@^@^@^@^@^R^@^@^@[27m
369[7m<EF>^@^@^@^@^@^@^@^@^@^@^@^R^@^@^@[27mM[7m^A^@^@^@^@^@^@^@^@^@^@^R^@^@^@ESC^B^@^@^@^@^@[27m[7m^@^@^@^@^@^R^@^@^@[27mu[7m^A^@^@^@^@^@^@^@^@^@^@^R^@^@^@<93>^@^@^@^@^@^@^@^@^@^@^@^R^@[27m
370[7m^@^@[27mn[7m^@^@^@^@^@^@^@^@^@^@^@^R^@^@^@^\^A^@^@^@^@^@^@^@^@^@^@^R^@^@^@[27m7[7m^B^@^@^@^@^@[27m[7m^@^@^@^@^@^R^@^@^@^Q^@^@^@^@^@^@^@^@^@^@^@[27m [7m^@^@^@[27m [7m^@^@^@^@^@^@^@^@^@^@^@[27m [7m^@^@^@[27m
371[7m^D^A^@^@^@^@^@^@^@^@^@^@^R^@^@^@[27m`[7m^@^@^@^@^@^@^@^@^@^@^@^R^@^@^@^T^A^@^@^@^@^@^@[27m
372[7m^@^@^@^@^R^@^@^@[27m>[7m^A^@^@^@^@^@^@^@^@^@^@^R^@^@^@^U^B^@^@^@^@^@^@^@^@^@^@^R^@^@^@[27m}[7m^@^@^@^@^@^@^@^@^@^@^@^R^@^@^@^C^B^@^@^@^@^@^@^@^@^@^@^R^@^@^@[27m"[7m^B^@^@^@^@^@^@^@[27m
373[7m^@^@^@^R^@^@^@<E9>^@^@^@^@^@^@^@^@^@^@^@^R^@^@^@<A0>^@^@^@^@^@^@^@^@^@^@^@^R^@^@[27m[7m^@[27m@[7m^@^@^@^@^@^@^@^@^@^@^@^R^@^@^@[27ma[7m^A^@^@^@^@^@^@^@^@^@^@^R^@^@^@<FD>^@^@^@^@^@^@[27m[7m^@^@^@^@^@^R^@^@^@<CB>^A^@^@^@^@^@^@^@^@^@^@^R^@^@^@<D2>^A^@^@^@^@^@^@^@^@^@^@^R[27m[7m^@^@^@<D7>^@^@^@^@^@^@^@^@^@^@^@^R^@^@^@<B7>^A^@^@^@^@^@^@^@^@^@^@^R^@^@^@<D0>^@[27m:[K
374[K[7m^@^@^@^@^@^@^@^@^@^@^R^@^@^@<A7>^@^@^@^@^@^@^@^@^@^@^@^R^@^@^@[27m([7m^B^@^@^@^@^@^@^@[27m
375[7m^@^@^@^R^@^@^@[27mn[7m^A^@^@^@^@^@^@^@^@^@^@^R^@^@^@<85>^A^@^@^@^@^@^@^@^@^@^@^R^@^@^@[27mU[7m^A^@^@^@^@^@^@^@^@^@^@^R^@^@^@<F7>^@^@^@^@^@^@^@^@^@^@^@^R^@^@^@[27mO[7m^@^@^@^@^@^@^@[27m
376[7m^@^@^@^@^R^@^@^@[27mH[7m^@^@^@^@^@^@^@^@^@^@^@^R^@^@^@<EE>^A^@^@^@^@^@^@^@^@^@^@^R^@^@[27m
377[7m^@[27m\[7m^A^@^@^@^@^@^@^@^@^@^@^R^@^@^@[27mf[7m^A^@^@^@^@^@^@^@^@^@^@^R^@^@^@[27mF[7m^A^@^@^@^@^@^@[27m
378[7m^@^@^@^@^R^@^@^@<B0>^@^@^@^@^@^@^@^@^@^@^@^R^@^@^@<E7>^A^@^@^@^@^@^@^@^@^@^@^R^@[27m[7m^@^@<ED>^A^@^@^@^@^@^@^@^@^@^@^R^@^@^@[27m([7m^A^@^@^@^@^@^@^@^@^@^@^R^@^@^@[27m-[7m^A^@^@^@^@[27m[7m^@^@^@^@^@^@^R^@^@^@<CC>^A^@^@^@^@^@^@^@^@^@^@^R^@^@^@<9C>^A^@^@^@^@^@^@^@^@^@^@[27m[7m^R^@^@^@[27m#[7m^A^@^@^@^@^@^@^@^@^@^@^R^@^@^@<91>^A^@^@^@^@^@^@^@^@^@^@^R^@^@^@<84>^@[27m
379[7m^@^@^@^@^@^@^@^@^@^@^R^@^@^@<8C>^A^@^@^@^@^@^@^@^@^@^@^R^@^@^@<A3>^A^@^@^@^@^@^@[27m[7m^@^@^@^@^R^@^@^@<E3>^@^@^@^@^@^@^@^@^@^@^@^R^@^@^@[27m.[7m^B^@^@^@^@^@^@^@^@^@^@^R^@^@[27m
380[7m^@[27mY[7m^@^@^@^@^@^@^@^@^@^@^@^R^@^@^@<FC>^A^@^@^@^@^@^@^@^@^@^@^R^@^@^@<DE>^@^@^@^@[27m
381[7m^@^@^@^@^@^@^@^R^@^@^@[27mt[7m^@^@^@^@^@^@^@^@^@^@^@^R^@^@^@<DF>^A^@^@^@^@^@^@^@^@^@^@[27m
382[7m^R^@^@^@[27m1[7m^C^@^@^@^B^E^H[27md[7m^@^@^@^Q^@^X^@[27m4[7m^@^@^@[27m,[7m<D9>^D^H^@^@^@^@^R^@^O^@<F9>^B^@^@[27m[7m<E8>^A^E^H^D^@^@^@^Q^@^X^@[27mQ[7m^C^@^@<F0>^A^E^H^D^@^@^@^Q^@^X^@[27mg[7m^@^@^@[27m [7m^L^E^H^D^@^@[27m
383[7m^@^Q^@^Y^@[27m:[7m^@^@^@[27mD[7m<92>^D^H^@^@^@^@^R^@^L^@[27mW[7m^B^@^@<D9>^L^E^H^A^@^@^@^Q^@^Y^@[27mi[7m^B^@[27m[7m^@<80>^K^E^H^D^@^@^@^Q^@^X^@<A0>^B^@^@<80>^G^E^H^@^D^@^@^Q^@^X^@<BF>^B^@^@<C0>^B[27m[7m^E^H[27m@[7m^@^@^@^Q^@^X^@<9A>^@^@^@[27m@[7m^L^E^H^D^@^@^@^Q^@^Y^@[27mF[7m^B^@^@^D^L^E^H^@^@^@^@^P^@[27m
384[7m<F1><FF><C1>^@^@^@[27mL[7m<D9>^D^H^D^@^@^@^Q^@^P^@<DA>^B^@^@<D8>^L^E^H^A^@^@^@^Q^@^Y^@[27m
385[7m^W^C^@^@<E0>^A^E^H^D^@^@^@^Q^@^X^@[27mR[7m^B^@^@[27mp[7m^M^E^H^@^@^@^@^P^@<F1><FF><BD>^A^@^@[27m(
386[7m^L^E^H^D^@^@^@^Q^@^Y^@[27m$[7m^C^@^@<EC>^A^E^H^D^@^@^@^Q^@^X^@<97>^B^@^@[27m@[7m^M^E^H[27m0[7m^@^@^@[27m
387[7m^Q^@^Y^@<B0>^B^@^@<80>^C^E^H^@^D^@^@^Q^@^X^@<B0>^A^@^@[27m,[7m^L^E^H^D^@^@^@^Q^@^Y^@[27m?[7m^B[27m[7m^@^@^D^L^E^H^@^@^@^@^P^@<F1><FF><F5>^A^@^@[27md[7m^L^E^H^D^@^@^@^Q^@^Y^@<89>^B^@^@^@^C[27m
388:[K
389[K[7m^E^H[27md[7m^@^@^@^Q^@^X^@<CD>^B^@^@<80>^B^E^H[27m@[7m^@^@^@^Q^@^X^@<8E>^@^@^@[27mD[7m^L^E^H^D^@^@^@[27m
390[7m^Q^@^Y^@<A9>^A^@^@<80>^L^E^H^D^@^@^@^Q^@^Y^@[27mB[7m^C^@^@<A0>^K^E^H[27md[7m^@^@^@^Q^@^X^@<EC>[27m[7m^B^@^@<84>^K^E^H^D^@^@^@^Q^@^X^@^S^C^@^@<F4>^A^E^H^D^@^@^@^Q^@^X^@[27mw[7m^B^@^@<F8>^A[27m
391[7m^E^H^D^@^@^@^Q^@^X^@[27m{[7m^B^@^@<E4>^A^E^H^D^@^@^@^Q^@^X^@[27m~[7m^A^@^@[27m`[7m^L^E^H^D^@^@^@^Q^@[27m
392[7m^Y^@^@[27mlibncurses.so.5[7m^@[27m__gmon_start__[7m^@[27m_Jv_RegisterClasses[7m^@[27m_fini[7m^@[27m_init[7m^@[27minitscrr[7m^@[27mcbreak[7m^@[27mhalfdelay[7m^@[27mnoecho[7m^@[27mendwin[7m^@[27mstdscr[7m^@[27mwmove[7m^@[27mwattr_on[7m^@[27mprintw[7m^@[27mwattr_off[7m^@[27mCOLS[7m^@[27mwaddch[7m^@[27mLINES[7m^@[27mwerase[7m^@[27mwrefresh[7m^@[27mwgetch[7m^@[27mlibc.so.6[7m^@[27m_IO_stdin_used[7m^@[27msockeet[7m^@[27mfflush[7m^@[27mexit[7m^@[27mhtonl[7m^@[27mhtons[7m^@[27msprintf[7m^@[27mfopen[7m^@[27mperror[7m^@[27m__isoc99_sscanf[7m^@[27mstrncpy[7m^@[27msignal[7m^@[27mputs[7m^@[27mtime[7m^@[27m__stack_chk_fail[7m^@[27mputchar[7m^@[27mselect[7m^@[27misprint[7m^@[27mstrlen[7m^@[27mbind[7m^@[27mrread[7m^@[27mlrand48[7m^@[27mgetopt[7m^@[27mshutdown[7m^@[27mstdout[7m^@[27mmemcpy[7m^@[27mrand[7m^@[27msetsockopt[7m^@[27mstrcat[7m^@[27mbzero[7m^@[27moptarg[7m^@[27mstderr[7m^@[27mioctl[7m^@[27moptopt[7m^@[27mfileno[7m^@[27musleep[7m^@[27mgettimeofday[7m^@[27mgeteuid[7m^@[27mclose[7m^@[27mfpprintf[7m^@[27mopterr[7m^@[27mstrcmp[7m^@[27m__libc_start_main[7m^@[27mwrite[7m^@[27mrandom[7m^@[27mntohl[7m^@[27mntohs[7m^@[27msnprintf[7m^@[27m__xstat[7m^@[27m_edata[7m^@[27m__bss_start[7m^@[27m_end[7m^@[27mvirtex_programmed[7m^@[27mnf2_device_id[7m^@[27mnf2_cpci__revision[7m^@[27mnf2_proj_desc[7m^@[27mprev_dev[7m^@[27mnf2_version_err[7m^@[27mnf2device_info[7m^@[27mnf2_proj_namme[7m^@[27mnf2_proj_dir[7m^@[27mhave_version_info[7m^@[27mnf2_revision[7m^@[27mnf2_dev_id_module_version[7m^@[27mnf22_cpci_version[7m^@[27mnf2device_id[7m^@[27mnf2_proj_name_v1[7m^@[27mnf2_device_str[7m^@[27mnf2_version[7m^@[27mGLIBBC_2.4[7m^@[27mGLIBC_2.1[7m^@[27mGLIBC_2.7[7m^@[27mGLIBC_2.0[7m^@^@^@^@^B^@^B^@^B^@^B^@^B^@^@^@^@^@^B^@[27m
393[7m^B^@^@^@^@^@^C^@^@^@^B^@^B^@^B^@^@^@^B^@^B^@^B^@^@^@^@^@^B^@^B^@^B^@^B^@^B^@^B^@[27m[7m^B^@^@^@^B^@^B^@^B^@^B^@^D^@^@^@^@^@^B^@^B^@^B^@^B^@^@^@^B^@^B^@^B^@^E^@^B^@^B^@[27m[7m^B^@^B^@^@^@^B^@^B^@^B^@^B^@^@^@^B^@^B^@^@^@^B^@^A^@^A^@^A^@^A^@^@^@^A^@^A^@^A^@[27m[7m^A^@^A^@^@^@^A^@^A^@^A^@^A^@^A^@^B^@^A^@^A^@^A^@^B^@^A^@^B^@^A^@^A^@^@^@^B^@^A^@[27m[7m^A^@^A^@^A^@^A^@^B^@^@^@^A^@^D^@<B7>^@^@^@^P^@^@^@^@^@^@^@^T[27mii[7m^M^@^@^E^@[27m][7m^C^@^@[27m
394[7m^P^@^@^@^Q[27mii[7m^M^@^@^D^@[27mg[7m^C^@^@^P^@^@^@^W[27mii[7m^M^@^@^C^@[27mq[7m^C^@^@^P^@^@^@^P[27mii[7m^M^@^@^B^@[27m{:[K
395[K{[7m^C^@^@^@^@^@^@<A0><FF>^D^H^F[27mC[7m^@^@<A4><FF>^D^H^F[27m
396[7m^@^@<A8><FF>^D^H^F[27mD[7m^@^@<AC><FF>^D^H^F[27m[[7m^@^@<B0><FF>^D^H^F[27mT[7m^@^@<B4><FF>^D^H^F[27mO[7m^@^@[27m¸[7m<B8><FF>^D^H^F[27mE[7m^@^@<BC><FF>^D^H^F[27mQ[7m^@^@[27m,[7m^L^E^H^E[27mQ[7m^@^@<C0><FF>^D^H^F[27mP[7m^@^@<C4><FF>[27m
397[7m^D^H^F[27mF[7m^@^@<C8><FF>^D^H^F[27mU[7m^@^@<CC><FF>^D^H^F[27mJ[7m^@^@<D0><FF>^D^H^F[27m\[7m^@^@<D4><FF>^D^H[27m[7m^F[27mK[7m^@^@<D8><FF>^D^H^F[27mY[7m^@^@<DC><FF>^D^H^F[27m?[7m^@^@<E0><FF>^D^H^F[27mZ[7m^@^@<E4><FF>^D^H^F[27mN
398[7m^@^@<E8><FF>^D^H^F[27m=[7m^@^@<EC><FF>^D^H^F[27mX[7m^@^@<F0><FF>^D^H^F[27m@[7m^@^@[27m [7m^L^E^H^E[27mA[7m^@^@[27m([7m^L^E[27m[7m^H^E[27mM[7m^@^@[27m@[7m^L^E^H^E[27mG[7m^@^@[27mD[7m^L^E^H^E[27mV[7m^@^@[27m`[7m^L^E^H^E[27m][7m^@^@[27md[7m^L^E^H^E[27mS[7m^@^@<80>^L^E^H^E[27mW[7m^@[27m[7m^@^@^@^E^H^G^A^@^@^D^@^E^H^G^B^@^@^H^@^E^H^G^C^@^@^L^@^E^H^G^D^@^@^P^@^E^H^G^E^@[27m[7m^@^T^@^E^H^G^F^@^@^X^@^E^H^G^G^@^@^\^@^E^H^G^H^@^@[27m [7m^@^E^H^G[27m [7m^@^@[27m$[7m^@^E^H^G[27m
399[7m^@^@[27m([7m^@^E^H^G^L^@^@[27m,[7m^@^E^H^G^M^@^@[27m0[7m^@^E^H^G^N^@^@[27m4[7m^@^E^H^G^O^@^@[27m8[7m^@^E^H^G^P^@^@[27m<[7m^@^E^H^G^Q^@^@[27m@[7m^@^E^H^G^R^@^@[27mD[7m^@^E^H^G^S^@^@[27mH[7m^@^E^H^G^T^@^@[27mL[7m^@^E^H^G^U^@^@[27mP[7m^@^E[27m
400[7m^H^G^V^@^@[27mT[7m^@^E^H^G^W^@^@[27mX[7m^@^E^H^G^X^@^@[27m\[7m^@^E^H^G^Y^@^@[27m`[7m^@^E^H^G^Z^@^@[27md[7m^@^E^H^G[27m
401[7mESC^@^@[27mh[7m^@^E^H^G^\^@^@[27ml[7m^@^E^H^G^]^@^@[27mp[7m^@^E^H^G^^^@^@[27mt[7m^@^E^H^G^_^@^@[27mx[7m^@^E^H^G[27m [7m^@[27m
402[7m^@[27m|[7m^@^E^H^G[27m![7m^@^@<80>^@^E^H^G[27m"[7m^@^@<84>^@^E^H^G[27m#[7m^@^@<88>^@^E^H^G[27m$[7m^@^@<8C>^@^E^H^G[27m%[7m^@^@<90>^@^E^H^G[27m&[7m^@^@<94>^@^E^H^G[27m'[7m^@^@<98>^@^E^H^G[27m([7m^@^@<9C>^@^E^H^G[27m)[7m^@^@<A0>^@^E[27m[7m^H^G[27m*[7m^@^@<A4>^@^E^H^G[27m+[7m^@^@<A8>^@^E^H^G[27m,[7m^@^@<AC>^@^E^H^G[27m-[7m^@^@<B0>^@^E^H^G[27m.[7m^@^@[27m
403[7m<B4>^@^E^H^G[27m/[7m^@^@<B8>^@^E^H^G[27m0[7m^@^@<BC>^@^E^H^G[27m1[7m^@^@<C0>^@^E^H^G[27m2[7m^@^@<C4>^@^E^H^G[27m33[7m^@^@<C8>^@^E^H^G[27m4[7m^@^@<CC>^@^E^H^G[27m5[7m^@^@<D0>^@^E^H^G[27m6[7m^@^@<D4>^@^E^H^G[27m7[7m^@^@<D8>^@[27m
404[7m^E^H^G[27m8[7m^@^@<DC>^@^E^H^G[27m9[7m^@^@<E0>^@^E^H^G[27m:[7m^@^@<E4>^@^E^H^G[27m;[7m^@^@<E8>^@^E^H^G[27m<[7m^@^@[27mU‰[7m<89><E5>[27mS[7m<83><EC>^D<E8>^@^@^@^@[27m[[7m<81>[27mäm[7m^@^@<8B><93><B0><FF><FF><FF><85><D2>[27mt[7m^E[27m
405[7m<E8><AE>^@^@^@<E8>[27me[7m^D^@^@<E8><90>[27mF[7m^@^@[27mX[[7m<C9><C3><FF>[27m5[7m<F8><FF>^D^H<FF>[27m%[7m<FC><FF>^D[27m[7m^H^@^@^@^@<FF>[27m%[7m^@^@^E^H[27mh[7m^@^@^@^@<E9><E0><FF><FF><FF><FF>[27m%[7m^D^@^E^H^@^@^@<E9><D0>[27m
406[7m<FF><FF><FF><FF>^@^E^H[27mh[7m^P^@^@^@<E9><C0><FF><FF><FF><FF>[27m%[7m^L^@^E^H[27mh[7m^X^@^@^@<E9>[27m
407:[K
408[K[7m<B0><FF><FF><FF><FF>[27m%[7m^P^@^E^H[27mh [7m^@^@^@<E9><A0><FF><FF><FF><FF>[27m%[7m^T^@^E^H[27mh([7m^@^@^@[27m
409[7m<E9><90><FF><FF><FF><FF>[27m%[7m^X^@^E^H[27mh0[7m^@^@^@<E9><80><FF><FF><FF><FF>[27m%[7m^\^@^E^H[27mh8[7m^@^@[27m[7m^@<E9>[27mp[7m<FF><FF><FF><FF>[27m% [7m^@^E^H[27mh@[7m^@^@^@<E9>[27m`[7m<FF><FF><FF><FF>[27m%$[7m^@^E^H[27mhH[7m^@^@^@<E9>[27mPP[7m<FF><FF><FF><FF>[27m%([7m^@^E^H[27mhP[7m^@^@^@<E9>[27m@[7m<FF><FF><FF><FF>[27m%,[7m^@^E^H[27mhX[7m^@^@^@<E9>[27m0[7m<FF>[27m
410[7m<FF><FF><FF>[27m%0[7m^@^E^H[27mh`[7m^@^@^@<E9>[27m [7m<FF><FF><FF><FF>[27m%4[7m^@^E^H[27mhh[7m^@^@^@<E9>^P<FF><FF>[27m
411[7m<FF><FF>[27m%8[7m^@^E^H[27mhp[7m^@^@^@<E9>^@<FF><FF><FF><FF>[27m%<[7m^@^E^H[27mhx[7m^@^@^@<E9><F0><FE><FF>[27m
412[7m<FF><FF>[27m%@[7m^@^E^H[27mh[7m<80>^@^@^@<E9><E0><FE><FF><FF><FF>[27m%D[7m^@^E^H[27mh[7m<88>^@^@^@<E9><D0>[27m
413[7m<FE><FF><FF><FF>[27m%H[7m^@^E^H[27mh[7m<90>^@^@^@<E9><C0><FE><FF><FF><FF>[27m%L[7m^@^E^H[27mh[7m<98>^@^@^@[27m
414[7m<E9><B0><FE><FF><FF><FF>[27m%P[7m^@^E^H[27mh[7m<A0>^@^@^@<E9><A0><FE><FF><FF><FF>[27m%T[7m^@^E^H[27mh[7m<A8>[27m[7m^@^@^@<E9><90><FE><FF><FF><FF>[27m%X[7m^@^E^H[27mh[7m<B0>^@^@^@<E9><80><FE><FF><FF><FF>[27m%\[7m^@^E[27m
415[7m^H[27mh[7m<B8>^@^@^@<E9>[27mp[7m<FE><FF><FF><FF>[27m%`[7m^@^E^H[27mh[7m<C0>^@^@^@<E9>[27m`[7m<FE><FF><FF><FF>[27m%d[7m^@^E[27m[7m^H[27mh[7m<C8>^@^@^@<E9>[27mP[7m<FE><FF><FF><FF>[27m%h[7m^@^E^H[27mh[7m<D0>^@^@^@<E9>[27m@[7m<FE><FF><FF><FF>[27m%l[7m^@^E[27m[7m^H[27mh[7m<D8>^@^@^@<E9>[27m0[7m<FE><FF><FF><FF>[27m%p[7m^@^E^H[27mh[7m<E0>^@^@^@<E9>[27m [7m<FE><FF><FF><FF>[27m%t[7m^@^E[27m[7m^H[27mh[7m<E8>^@^@^@<E9>^P<FE><FF><FF><FF>[27m%x[7m^@^E^H[27mh[7m<F0>^@^@^@<E9>^@<FE><FF><FF><FF>[27m%|[7m^@[27m[7m^E^H[27mh[7m<F8>^@^@^@<E9><F0><FD><FF><FF><FF>[27m%[7m<80>^@^E^H[27mh[7m^@^A^@^@<E9><E0><FD><FF><FF>[27m
416[7m<FF>[27m%[7m<84>^@^E^H^A^@^@<E9><D0><FD><FF><FF><FF>[27m%[7m<88>^@^E^H[27mh[7m^P^A^@^@<E9><C0><FD>[27m
417[7m<FF><FF><FF>[27m%[7m<8C>^@^E^H[27mh[7m^X^A^@^@<E9><B0><FD><FF><FF><FF>[27m%[7m<90>^@^E^H[27mh [7m^A^@^@<E9>[27m
418[7m<A0><FD><FF><FF><FF>[27m%[7m<94>^@^E^H[27mh([7m^A^@^@<E9><90><FD><FF><FF><FF>[27m%[7m<98>^@^E^H[27mh0[7m^A^@[27m[7m^@<E9><80><FD><FF><FF><FF>[27m%[7m<9C>^@^E^H[27mh8[7m^A^@^@<E9>[27mp[7m<FD><FF><FF><FF>[27m%[7m<A0>^@^E^H[27mh@
419[7m^A^@^@<E9>[27m`[7m<FD><FF><FF><FF>[27m%[7m<A4>^@^E^H[27mhH[7m^A^@^@<E9>[27mP[7m<FD><FF><FF><FF>[27m%[7m<A8>^@^E^H[27mhP[7m^A^@^@<E9>[27m@[7m<FD><FF><FF><FF>[27m%[7m<AC>^@^E^H[27mhX[7m^A^@^@<E9>[27m0[7m<FD><FF><FF><FF>[27m%[7m<B0>^@^E^H[27mh`[7m^A^@^@<E9>[27m [7m<FD><FF><FF><FF>[27m%[7m<B4>^@^E^H[27mhh[7m^A^@^@<E9>^P<FD><FF><FF><FF>[27m%[7m<B8>^@^E^H[27mhpp[7m^A^@^@<E9>^@<FD><FF><FF><FF>[27m%[7m<BC>^@^E^H[27mhx[7m^A^@^@<E9><F0><FC><FF><FF><FF>[27m%[7m<C0>^@[27m
420:[K
421[K[7m^E^H[27mh[7m<80>^A^@^@<E9><E0><FC><FF><FF><FF>[27m%[7m<C4>^@^E^H[27mh[7m<88>^A^@^@<E9><D0><FC><FF>[27m
422[7m<FF><FF>[27m%[7m<C8>^@^E^H[27mh[7m<90>^A^@^@<E9><C0><FC><FF><FF><FF>[27m%[7m<CC>^@^E^H[27mh[7m<98>^A^@^@<E9>[27mü[7m<B0><FC><FF><FF><FF>[27m%[7m<D0>^@^E^H[27mh[7m<A0>^A^@^@<E9><A0><FC><FF><FF><FF>[27m%[7m<D4>^@^E^H[27mh
423[7m<A8>^A^@^@<E9><90><FC><FF><FF><FF>[27m%[7m<D8>^@^E^H[27mh[7m<B0>^A^@^@<E9><80><FC><FF><FF><FF>[27m%%[7m<DC>^@^E^H[27mh[7m<B8>^A^@^@<E9>[27mp[7m<FC><FF><FF><FF>[27m%[7m<E0>^@^E^H[27mh[7m<C0>^A^@^@<E9>[27m`[7m<FC><FF>[27m
424[7m<FF><FF>[27m%[7m<E4>^@^E^H[27mh[7m<C8>^A^@^@<E9>[27mP[7m<FC><FF><FF><FF>[27m%[7m<E8>^@^E^H[27mh[7m<D0>^A^@^@<E9>[27m@
425[7m<FC><FF><FF>^@^@^@^@^@^@^@^@^@^@^@^@[27m1[7m<ED>[27m^[7m<89><E1><83><E4><F0>[27mPTRh0[7m<D8>^D^H[27mh@
426[7m<D8>^D^H[27mQVh[7m<F4><96>^D^H<E8>[27m#[7m<FD><FF><FF><U+110410><90><90><90><90><90><90><90>[27m
427[7m<90><90><90><90>[27mU[7m<89><E5>[27mS[7m<83><EC>^D<80>[27m=[7m<84>^L^E^H^@[27mu?[7m<A1><88>^L^E^H<BB><C0>[27m
428[7m<FE>^D^H<81><EB><BC><FE>^D^H<C1><FB>^B<83><EB>^A[27m9[7m<D8>[27ms[7m^^<8D><B6>^@^@^@^@<83><C0>[27m[7m^A<A3><88>^L^E^H<FF>^T<85><BC><FE>^D^H<A1><88>^L^E^H[27m9[7m<D8>[27mr[7m<E8><C6>^E<84>^L^E^H^A[27mƒ[7m<83><C4>^D[27m[]Ít&[7m^@<8D><BC>[27m'[7m^@^@^@^@[27mU[7m<89><E5><83><EC>^X<A1><C4><FE>^D^H<85><C0>[27mt[7m^R[27m¸[7m<B8>^@^@^@^@<85><C0>[27mt [7m<C7>^D[27m$[7m<C4><FE>^D^H<FF><D0><C9>[27mÐU[7m<89><E5><83><E4><F0>[27m
429[7m<83><EC>[27m [7m<C7>^E^@^M^E^H<CB><D9>^D^H<8B>[27mE[7m^L<89>[27mD$[7m^D<8B><89>^D[27m$[7m<E8>^]^G^@^@<C7>^D[27m$[7m^@^M^E^H<E8><EF>[27m+[7m^@^@<85><C0>[27mt[7m^L<C7>^D[27m$[7m^A^@^@^@<E8><CF><FE><FF><FF><C7>^D[27m$[7m^@^M^E[27m[7m^H<E8><97>[27m-[7m^@^@<85><C0>[27mt[7m^L<C7>^D[27m$[7m^A^@^@^@<E8><B3><FE><FF><FF><C7>[27mD$[7m^\<FF><FF>[27m
430[7m<FF><FF><C7>[27mD$[7m^X^A^@^@^@<C7>[27mD$[7m^T^A^@^@^@<C7>[27mD$[7m^P<FF><FF><FF><FF><C7>[27mD$[7m^L^A^@^@^@[27mD[7m<C7>[27mD[7m^A^@^@^@<C7>[27mD$[7m^D<D1><D9>^D^H<C7>^D[27m$[7m^@^M^E^H<E8>[27mK:[7m^@^@<85><C0>[27mu,[7m<E8><EE>[27m?[7m^@[27m
431[7m^@<B9><DA><D9>^D^H<8B>^U[27m,[7m^L^E^H<89>[27mD[7m<89>L[27m$[7m^D<89>^T[27m$[7m<E8>[27mk[7m<FD><FF><FF><C7>^D[27m$[7m^A^@[27m
432[7m^@^@<E8>[27m?[7m<FE><FF><FF><C7>^D[27m$[7m^@^M^E^H<E8>^?[27m6[7m^@^@<89>^D[27m$[7m<E8><EB><FC><FF><FF><C7>[27mD$[7m^D[27mC[7m<9C>^D^H<C7>^D[27m$[7m^B^@^@^@<E8>^G<FB><FF><FF><E8>^W^\^@^@<A1><90>^L^E^H<85><C0>[27mt
433[7m^G<E8>[27m#[7m^@^@^@<EB>^N<A1>[27m [7m^A^E^H<85><C0>[27mt[7m^E<E8>[27mJ[7m^@^@^@<C7>^D[27m$[7m^@^M^E^H<E8>[27m|.[7m^@^@[27m
434[7m<B8>^@^@^@^@<C9><C3>[27mU[7m<89><E5><83><EC>^X<E8><96><FB><FF><FF><A3><E0>^L^E^H<E8>[27m|
435:[K
436[K[7m<FC><FF><FF><C7>^D[27m$[7m^A^@^@^@<E8>[27m`[7m<FC><FF><FF><E8><9B><FD><FF><FF><E8><F3>^A^@^@[27m
437[7m<E8>[27mY[7m^D^@^@<E8><DC><FA><FF><FF><C9><C3>[27mU[7m<89><E5><83><EC>[27m([7m<C7>[27mE[7m<F0>^@^@^@^@<E8>[27m
438[7m<96>^C^@^@<E8>^K^D^@^@<B8><DE><D9>^D^H<C7>[27mD$[7m^D<F3><D9>^D^H<89>^D[27m$[7m<E8>[27m>[7m<FC><FF>[27m
439[7m<FF><B8><FE><D9>^D^H<89>^D[27m$[7m<E8>[27m1[7m<FC><FF><FF><A1>[27m`[7m^L^E^H<89>^D[27m$[7m<E8>[27mt[7m<FB><FF><FF>[27m
440[7m<C7>[27mE[7m<F4>^@^@^@^@<EB>[27m)[7m<C7>^D[27m$[7m^A^@^@^@<E8><9F><FC><FF><FF><C7>^D[27m$.[7m^@^@^@<E8><93>[27m
441[7m<FA><FF><FF><A1>[27m`[7m^L^E^H<89>^D[27m$[7m<E8>[27mF[7m<FB><FF><FF><83>[27mE[7m<F4>^A<83>[27m}[7m<F4>^D[27m~[7m<D1><C7>^D[27m$$ [7m^@^@^@<E8>[27mp[7m<FA><FF><FF><C7>[27mE[7m<F4>^@^@^@^@<EB>[27ma[7m<8B>[27mU[7m<F4><89><D0><C1><E0>^B^A<D0>[27mà[7m<C1><E0>^B<8B><80>[27mP[7m^A^E^H<FF>[27mЅ
442[7m<C0>[27muD[7m<83>[27m}[7m<F0>^@[27mu[7m^O<B8>^F<DA>^D^H<89>^D[27m$[7m<E8><AB>[27m
443[7m<FB><FF><FF><EB>^M<B8>^^<DA>^D^H<89>^D[27m$[7m<E8><9C><FB><FF><FF><8B>[27mU[7m<F4><89><D0><C1>[27m[7m<E0>^B^A<D0><C1><E0>^B<8B><80>[27m@[7m^A^E^H<89>^D[27m$[7m<E8><81><FB><FF><FF><C7>[27mE[7m<F0>^A^@^@[27m
444[7m^@<83>[27mE[7m<F4>^A<83>[27m}[7m<F4>^G[27m~[7m<99><E8>[27mS[7m^C^@^@<83>[27m}[7m<F0>^@[27mu[7m^N<C7>^D[27m$![7m<DA>^D^H<E8>[27m ÿ[7m<FC><FF><FF><EB>^L<C7>^D[27m$
445[7m^@^@^@<E8><DB><F9><FF><FF><C9><C3>[27mU[7m<89><E5><83><EC>^X<A1>[27m [7m^L^E^H<C7>[27mD[7m^@^@^@^@[27m
446[7m<C7>[27mD$[7m^D^@^@^@^@<89>^D[27m$[7m<E8>[27mF[7m<F9><FF><FF><A1>[27m [7m^L^E^H<C7>[27mD[7m^@^@^@^@<C7>[27mD$[7m^D^@^@^D^@[27m‰[7m<89>^D[27m$[7m<E8>[27mY[7m<FC><FF><FF><E8>[27mP[7m^@^@^@<A1>[27m [7m^L^E^H<C7>[27mD[7m^D^@^@^@<C7>[27mD$[7m^D^@^@^@^@<89>[27m
447[7m^D[27m$[7m<E8>^G<F9><FF><FF><C7>[27mD$[7m^D<F3><D9>^D^H<C7>^D[27m$([7m<DA>^D^H<E8><83><F9><FF><FF>[27m
448[7m<A1>[27m [7m^L^E^H<C7>[27mD[7m^@^@^@^@<C7>[27mD$[7m^D^@^@^D^@<89>^D[27m$[7m<E8><86><FB><FF><FF><C9><C3>[27mU[7m<89>[27mì[7m<E5><83><EC>[27m([7m<A1>[27mD[7m^L^E^H<89>[27mE[7m<F4><EB>^Y<A1>[27m [7m^L^E^H<C7>[27mD$[7m^D[27m [7m^@^@^@<89>^D[27m$[7m<E8><9F>[27mÿ[7m<F8><FF><FF><83>[27mm[7m<F4>^A<83>[27m}[7m<F4>^@^?<E1><C9><C3>[27mU[7m<89><E5><83><EC>[27m8[7m<C7>[27mE[7m<F4><FF>[27m
449[7m<FF><FF><FF><E8><AF>^A^@^@<E8>[27m$[7m^B^@^@<EB>^A<90><A1>[27m@[7m^L^E^H<89>[27mE[7m<EC><A1>[27mD[7m^L^E^H[27m
450[7m<89>[27mE[7m<E8><A1>[27m [7m^L^E^H<89>^D[27m$[7m<E8>[27m<[7m<F9><FF><FF><A1>[27m [7m^L^E^H<C7>[27mD[7m^@^@^@^@<C7>[27mD$[7m^D^@^@[27m[7m^@^@<89>^D[27m$[7m<E8>[27mO[7m<F8><FF><FF><E8><E1><FE><FF><FF><A1>[27m [7m^L^E^H<C7>[27mD[7m^@^@^@^@<C7>[27mD$[7m^D[27m[7m^B^@^@^@<89>^D[27m$[7m<E8>[27m-[7m<F8><FF><FF><C7>[27mE[7m<E4>^@^@^@^@<EB>^Y<8B>[27mU[7m<E4><89><D0><C1><E0>[27m:[K
451[K[7m^B^A<D0><C1><E0>^B<8B><80>[27mH[7m^A^E^H<FF>[27mЃE[7m<E4>^A<83>[27m}[7m<E4>^G[27m~[7m<E1><A1>[27m@[7m^L^E^H<8D>[27mP
452[7m<FF><A1>[27m [7m^L^E^H<C7>[27mD[7m^@^@^@^@<89>[27mT$[7m^D<89>^D[27m$[7m<E8><E4><F7><FF><FF><E8>^K<FF><FF>[27m
453[7m<FF><A1>[27m@[7m^L^E^H<8D>[27mP[7m<FF><A1>[27m [7m^L^E^H<C7>[27mD[7m^@^@^@^@<89>[27mT$[7m^D<89>^D[27m$[7m<E8><BE><F7><FF>[27m
454[7m<FF><A1>[27m [7m^L^E^H<C7>[27mD[7m^@^@^@^@<C7>[27mD$[7m^D^@^@^D^@<89>^D[27m$[7m<E8><D1><FA><FF><FF><C7>^D[27m$=
455[7m<DA>^D^H<E8>[27m%[7m<F8><FF><FF><A1>[27m [7m^L^E^H<C7>[27mD[7m^@^@^@^@<C7>[27mD$[7m^D^@^@^D^@<89>^D[27m$[7m<E8>[27m(
456[7m<FA><FF><FF><C7>^D[27m$?[7m<DA>^D^H<E8><FC><F7><FF><FF><A1>[27m@[7m^L^E^H<8D>[27mP[7m<FE><A1>[27m [7m^L^E^H[27m
457[7m<C7>[27mD[7m^@^@^@^@<89>[27mT$[7m^D<89>^D[27m$[7m<E8>[27mK[7m<F7><FF><FF><A1>[27m [7m^L^E^H<89>^D[27m$[7m<E8><9E><F8><FF>[27m
458[7m<FF><C7>[27mE[7m<F0>^@^@^@^@<C7>[27mE[7m<F4><FF><FF><FF><FF><EB>^T<A1>[27m [7m^L^E^H<89>^D[27m$[7m<E8>[27mA[7m<F9>[27m
459[7m<FF><FF><89>[27mE[7m<F4><83>[27mE[7m<F0>^A<83>[27m}[7m<F0>[27m [7m^?[27m [7m<83>[27m}[7m<F4>[27mqt[7m^Z<83>[27m}[7m<F4>[27mQt[7m^T<A1>[27m@[7m^L^E^H[27m99E[7m<EC>[27mu
460[7m<A1>[27mD[7m^L^E^H[27m9E[7m<E8>[27mtƃ}[7m<F4>[27mqt
461[7m<83>[27m}[7m<F4>[27mQ[7m^O<85>[27mZ[7m<FE><FF><FF><C9><C3>[27mU[7m<89><E5><83><EC>[27m([7m<8D>[27mE[7m<F4><89>[27mD[7m<C7>[27mD$[7m^D^H[27m
462[7m^@^@^@<C7>^D[27m$[7m^@^M^E^H<E8><F9>[27m#[7m^@^@<8B>[27mE[7m<F4><80><CC>^A<89>[27mD[7m<C7>D[27m$[7m^D^H^@^@^@<C7>^D[27m$$[7m^@^M^E^H<E8>[27m_%[7m^@^@<C9><C3>[27mU[7m<89><E5><83><EC>^X<83>^B[27mu+[7m<E8><E0><F6><FF><FF><A1>[27m
463[7m<90>^L^E^H<85><C0>[27mt[7m^E<E8>[27mJ[7m^@^@^@<C7>^D[27m$E[7m<DA>^D^H<E8>^F<F9><FF><FF><C7>^D[27m$[7m^@^@^@[27m
464[7m^@<E8><8A><F9><FF><FF><C9><C3>[27mU[7m<89><E5><83><EC>^X<C7>[27mE[7m<F4>^@^@^@^@<EB>^Y<8B>[27mU
465[7m<F4><89><D0><C1><E0>^B^A<D0><C1><E0>^B<8B><80>[27mD[7m^A^E^H<FF>[27mЃE[7m<F4>^A<83>[27m}[7m<F4>^G[27m~
466[7m<E1><C9><C3>[27mU[7m<89><E5><83><EC>^X<C7>[27mE[7m<F4>^@^@^@^@<EB>^Y<8B>[27mU[7m<F4><89><D0><C1><E0>[27m
467[7m^B^A<D0><C1><E0>^B<8B><80>[27mL[7m^A^E^H<FF>[27mЃE[7m<F4>^A<83>[27m}[7m<F4>^G[27m~[7m<E1><C9><C3>[27mU[7m<89><E5>[27m
468[7m<83><EC>[27m([7m<A1>[27m [7m^L^E^H<C7>[27mD[7m^@^@^@^@<C7>[27mD$[7m^D[27m
469[7m^@^@^@<89>^D[27m$[7m<E8><E5><F5><FF><FF><E8><E0><F7><FF><FF><89>[27mE[7m<EC><E8><D8><F7><FF>[27m
470[7m<FF><89>[27mE[7m<E8><8B>[27mE[7m<EC><83><E0>^O<89>[27mD[7m<C7>D[27m$[7m^D^\^@<90>^@<C7>^D[27m$[7m^@^M^E^H<E8>[27ms$[7m^@^@[27m‹[7m<8B>[27mE[7m<E8><89>[27mD[7m<C7>D[27m$[7m^D[27m [7m^@<90>^@<C7>^D[27m$[7m^@^M^E^H<E8>[27mX$[7m^@^@<C7>[27mD[7m^_^@^C^@<C7>[27mD$[7m^D^T[27m
471:[K
472[K[7m^@<90>^@<C7>^D[27m$[7m^@^M^E^H<E8>[27m<$[7m^@^@<C7>[27mD[7m^_^@^@^@<C7>[27mD$[7m^D^T^@<98>^@<C7>^D[27m$[7m^@^M^E^H[27m
473[7m<E8>[27m $[7m^@^@<C7>[27mD[7m^@^@^@^@<C7>[27mD$[7m^D^X^@<98>^@<C7>^D[27m$[7m^@^M^E^H<E8>^D[27m$[7m^@^@<C7>^D[27m$[7m<A0>[27m
474[7m<86>^A^@<E8>[27mL[7m<F6><FF><FF><C7>[27mD[7m^B^@^@^@<C7>[27mD$[7m^D^X^@<98>^@<C7>^D[27m$[7m^@^M^E^H<E8><DC>[27m#[7m^@^@<C7>[27mD[7m^A^@^@^@<C7>[27mD$[7m^D^@^@<8C>^@<C7>^D[27m$[7m^@^M^E^H<E8><C0>[27m#[7m^@^@<C7>[27mD[7m^@^@^@^@<C7>[27mDD$[7m^D^@^@<8C>^@<C7>^D[27m$[7m^@^M^E^H<E8><A4>[27m#[7m^@^@<C7>[27mD[7m^@^@^@^@<C7>[27mD$[7m^D^H^@<8C>^@<C7>^D[27m$[7m^@^M^E^H<E8><88>[27m#[7m^@^@<C7>[27mD[7m^@^@^@^@<C7>[27mD$[7m^D[27m [7m^@<8C>^@<C7>^D[27m$[7m^@^M^E^H<E8>[27ml#[7m^@^@<C9>[27mU[7m<C3>[27mU[7m<89><E5><83><EC>[27m([7m<C7>^E<8C>^L^E^H^@^@^@^@<C7>^E[27md[7m^L^E^H^@^@^@^@<E9><E2>^@^@[27m
475[7m^@^O<BE>[27mE[7m<F7><83><F8>[27mitU[7m<83><F8>[27mi[7m^?^O<83><F8>[27m?tc[7m<83><F8>[27mct[7m^T<E9><AC>^@^@^@<83>[27m
476[7m<F8>[27mntH[7m<83><F8>[27mst[7m^^<E9><9D>^@^@^@<C7>^E<90>^L^E^H^A^@^@^@<C7>^E[27m [7m^A^E^H^@^@^@^@[27m
477[7m<E9><9D>^@^@^@<C7>^E[27m [7m^A^E^H^A^@^@^@<C7>^E<90>^L^E^H^@^@^@^@<E9><84>^@^@^@<A1>[27m
478[7m<80>^L^E^H<A3>^@^M^E^H<EB>[27mx[7m<C7>^E<94>^L^E^H^A^@^@^@<EB>[27ml[7m<A1>[27m([7m^L^E^H<89>^D[27m$[7m<E8>[27m
479[7m<CC><F3><FF><FF><85><C0>[27mt"[7m<8B>^M[27m([7m^L^E^H<BA>[27m_[7m<DA>^D^H<A1>[27m,[7m^L^E^H<89>[27mL[7m<89>T[27m$[7m^D<89>[27m[7m^D[27m$[7m<E8>[27m([7m<F6><FF><FF><EB>[27m [7m<8B>^M[27m([7m^L^E^H<BA>[27mx[7m<DA>^D^H<A1>[27m,[7m^L^E^H<89>[27mL[7m<89>T[27m$[7m^D<89>[27m
480[7m^D[27m$[7m<E8>^F<F6><FF><FF><8B>[27mE[7m^L<8B>^@<89>^D[27m$[7m<E8>[27m5[7m^@^@^@<C7>^D[27m$[7m^A^@^@^@<E8><CD><F6>[27m
481[7m<FF><FF><C7>[27mD[7m<9A><DA>^D^H<8B>[27mE[7m^L<89>[27mD$[7m^D<8B><89>^D[27m$[7m<E8>^S<F5><FF><FF><88>[27mE[7m<F7>[27m
482[7m<80>[27m}[7m<F7><FF>^O<85><F7><FE><FF><FF><C9><C3>[27mU[7m<89><E5><83><EC>^X<B8><A0><DA>^D^H[27m
483[7m<8B><89>T[27m$[7m^D<89>^D[27m$[7m<E8>[27mJ[7m<F5><FF><FF><C7>^D[27m$[7m<D4><DA>^D^H<E8><EE><F5><FF><FF><C7>[27m
484[7m^D[27m$[7m^@<DB>^D^H<E8><E2><F5><FF><FF><C7>^D[27m$&[7m<DB>^D^H<E8><D6><F5><FF><FF><C7>^D[27m$@
485[7m<DB>^D^H<E8><CA><F5><FF><FF><C7>^D[27m$_[7m<DB>^D^H<E8><BE><F5><FF><FF><C7>^D[27m$[7m<80><DB>[27m
486[7m^D^H<E8><B2><F5><FF><FF><C9><C3>[27mU[7m<89><E5><83><EC>^X<C7>[27mD[7m^@^@^@^@<C7>[27mD$[7m^D^X^@<98>[27m[7m^@<C7>^D[27m$[7m^@^M^E^H<E8><BA>[27m![7m^@^@<C7>^D[27m$[7m<A0><86>^A^@<E8>^B<F4><FF><FF><C7>[27mD[7m^_^@^@^@[27mD[7m<C7>[27mD$[7m^D^T^@<98>^@<C7>^D[27m$[7m^@^M^E^H<E8><92>[27m![7m^@^@<C7>^D[27m$[7m^@^@^@^@<E8>^Z<F5><FF><FF>[27m
487[7m<A3><98>^L^E^H<C7>[27mD[7m^B^@^@^@<C7>[27mD$[7m^D^X^@<98>^@<C7>^D[27m$[7m^@^M^E^H<E8>[27me![7m^@^@<C9><C3>[27mU
488:[K
489[K[7m<89><E5>[27mS[7m<83><EC>[27md[7m<C7>[27mE[7m<F0>^H^@^@^@<8D>[27mE[7m<EC><89>[27mD[7m<C7>D[27m$[7m^D^D^@<98>^@<C7>^D[27m$[7m^@^M^E[27m[7m^H<E8><B6>^_^@^@<8D>[27mE[7m<E4><89>[27mD[7m<C7>D[27m$[7m^D^H^@<98>^@<C7>^D[27m$[7m^@^M^E^H<E8><9B>^_^@^@[27m
490[7m<8D>[27mE[7m<E8><89>[27mD[7m<C7>[27m[1m[7mD[27m[0m$[7m^D^L^@<98>^@<C7>^D[27m$[7m^@^M^E^H<E8><80>^_^@^@<C7>^D[27m$[7m^@^@^@^@<E8>[27mô[7m<8C><F4><FF><FF><89>[27mE[7m<E0><8D>[27mE܉D[7m<C7>[27m[1m[7mD[27m[0m$[7m^D^T^@<98>^@<C7>^D[27m$[7m^@^M^E^H<E8>[27mV[7m^_^@^@<8B>[27mEE܈E[7m<F7><C7>[27mE[7m<D4>^@^@^@^@<C7>[27mE[7m<D8>^@^@^@^@<EB>^^^O<B6>[27mU[7m<F7><8B>[27mE[7m<U+0609>[27mӉ[7m<C1><D3>[27mØ[7m<FB><89>[27m؃[7m<E0>^A<84><C0>[27mt[7m^D<83>[27mE[7m<D4>^A<83>[27mE[7m<D8>^A<83>[27m}[7m<D8>^G[27m~܋E[7m<EC>^E<FF><FF><FF>[27m[7m^C<C1><E0>^F<BA>^@^@^@^@<89>[27mE[7m<C0><89>[27mU[7m<C4><DF>[27mm[7m<C0><DD>[27m]ȋE[7m<D4>^A<C0><BA>^@^@^@^@[27m‰[7m<89>[27mE[7m<C0><89>[27mU[7m<C4><DF>[27mm[7m<C0><DD>[27mE[7m<C8><DE><C9><DD>[27m]È¡[7m<98>^L^E^H<8B>[27mU[7m<E0><89><D1>[27m)
491[7m<C1><89>[27mȉE[7m<BC><DB>[27mE[7m<BC><DD>[27mE[7m<C8><DE><F1><DD>[27m][7m<C8><DD>[27mE[7m<C8><DD>^E<F0><DB>^D^H<DE>[27mÝ[7m<C9><DD>[27m]ȋM[7m<E4><8B>[27mU[7m<E8><8B>[27mE[7m<EC><DD>[27mE[7m<C8><DD>[27m\$[7m^P<89>[27mL$[7m^L<89>[27mT[7m<89>D[27m$[7m^D<C7>^D[27m$
492[7m<A8><DB>^D^H<E8><EB><F1><FF><FF><8B>[27mE[7m<E8><85><C0>[27mt[7m^N<8B>[27mE[7m<E4><85><C0>[27mu[7m^G<B8>^A^@[27m[7m^@^@<EB>^E<B8>^@^@^@^@<83><C4>[27md[][7m<C3>[27mU[7m<89><E5><83><EC>^X<C7>[27mD[7m^@^@^@^@<C7>[27mD$[7m^D^X[27m
493[7m^@<98>^@<C7>^D[27m$[7m^@^M^E^H<E8><D5>^_^@^@<C9><C3>[27mU[7m<89><E5><83><EC>[27m([7m<8D>[27mE[7m<F0><89>[27mD
494[7m<C7>D[27m$[7m^D^H^@<98>^@<C7>^D[27m$[7m^@^M^E^H<E8>[27m.[7m^^^@^@<8D>[27mE[7m<F4><89>[27mD[7m<C7>[27mD$[7m^D^L^@<98>^@<C7>[27m[7m^D[27m$[7m^@^M^E^H<E8>^S^^^@^@<8B>[27mE[7m<F4><85><C0>[27mt[7m^N<8B>[27mE[7m<F0><85><C0>[27mu[7m^G<B8>^A^@^@^@<EB>[27m
495[7m^E<B8>^@^@^@^@<C9>[27mÐ[7m<90><90>[27mU[7m<89><E5><83><EC>^X<C7>[27mD[7m^@^@^@^@<C7>[27mD$[7m^D^X^@<90>^@[27m
496[7m<C7>^D[27m$[7m^@^M^E^H<E8>[27mV[7m^_^@^@<C7>^D[27m$[7m<A0><86>^A^@<E8><9E><F1><FF><FF><C7>[27mD[7m^_^@^C^@[27m
497[7m<C7>[27mD$[7m^D^T^@<90>^@<C7>^D[27m$[7m^@^M^E^H<E8>[27m.[7m^_^@^@<C7>^D[27m$[7m^@^@^@^@<E8><B6><F2><FF><FF>[27m
498[7m<A3><9C>^L^E^H<C7>[27mD[7m^B^@^@^@<C7>[27mD$[7m^D^X^@<90>^@<C7>^D[27m$[7m^@^M^E^H<E8>^A^_^@^@<C9><C3>[27mUU[7m<89><E5>[27mS[7m<83><EC>[27md[7m<C7>[27mE[7m<F0>^H^@^@^@<8D>[27mE[7m<EC><89>[27mD[7m<C7>D[27m$[7m^D^D^@<90>^@<C7>^D[27m$[7m^@^M[27m
499[7m^M^E^H<E8>[27mR[7m^]^@^@<8D>[27mE[7m<E4><89>[27mD[7m<C7>D[27m$[7m^D^H^@<90>^@<C7>^D[27m$[7m^@^M^E^H<E8>[27m7[7m^]^@^@<8D>[27mED[7m<E8><89>[27mD[7m<C7>D[27m$[7m^D^L^@<90>^@<C7>^D[27m$[7m^@^M^E^H<E8>^\^]^@^@<C7>^D[27m$[7m^@^@^@^@<E8>[27m([7m<F2>[27m
500[7m<FF><FF><89>[27mE[7m<E0><8D>[27mE܉D[7m<C7>D[27m$[7m^D^T^@<90>^@<C7>^D[27m$[7m^@^M^E^H<E8><F2>^\^@^@<8B>[27mE[7m<DC>[27mè:[K
501[K[7m<C1><E8>^P<83><E0>^C<88>[27mE[7m<F6><8B>[27mE܈E[7m<F7><C7>[27mE[7m<D4>^@^@^@^@<C7>[27mE[7m<D8>^@^@^@^@<EB>^^[27m[7m^O<B6>[27mU[7m<F7><8B>[27mE[7m<U+0609>[27mӉ[7m<C1><D3><FB><89>[27m؃[7m<E0>^A<84><C0>[27mt[7m^D<83>[27mE[7m<D4>^A<83>[27mE[7m<D8>[27m
502[7m^A<83>[27m}[7m<D8>^G[27m~[7m<DC>^O<B6>[27mE[7m<F6><83><F8>^B[27mt[7m^S<83><F8>^C[27mt[7m^W<83><F8>^A[27mu[7mESC<C7>[27mE[7m<D0>^A[27m[7m^@^@^@<EB>^Y<C7>[27mE[7m<D0>^A^@^@^@<EB>^P<C7>[27mE[7m<D0>^B^@^@^@<EB>^G<C7>[27mE[7m<D0>^@^@^@^@<8B>[27mE[7m<EC>^E<FF><FF><FF>^?^A<C0><BA>^@^@^@^@<89>[27mE[7m<C0><89>[27mU[7m<C4><DF>[27mm[7m<C0><DD>[27m]ȋE[7m<D0>^O[27m
503[7m<AF>[27mE[7m<D4>^A<C0><BA>^@^@^@^@<89>[27mE[7m<C0><89>[27mU[7m<C4><DF>[27mm[7m<C0><DD>[27mE[7m<C8><DE><C9><DD>[27m]È¡
504[7m<9C>^L^E^H<8B>[27mU[7m<E0><89><D1>[27m)[7m<C1><89>[27mȉE[7m<BC><DB>[27mE[7m<BC><DD>[27mE[7m<C8><DE><F1><DD>[27m][7m<C8>[27m
505[7m<DD>[27mE[7m<C8><DD>^E[27m@[7m<DC>^D^H<DE><C9><DD>[27m]ȋM[7m<E4><8B>[27mU[7m<E8><8B>[27mE[7m<EC><DD>[27mE[7m<C8><DD>[27m\$[7m^P[27m
506[7m<89>[27mL$[7m^L<89>[27mT[7m<89>[27m[1m[7mD[27m[0m$[7m^D<C7>^D[27m$[7m<F8><DB>^D^H<E8>[27mC[7m<EF><FF><FF><8B>[27mE[7m<E8><85><C0>[27mt[7m^N[27m
507[7m<8B>[27mE[7m<E4><85><C0>[27mu[7m^G<B8>^A^@^@^@<EB>^E<B8>^@^@^@^@<83><C4>[27md[][7m<C3>[27mU[7m<89><E5><83>[27m
508[7m<EC>^X<C7>[27mD[7m^@^@^@^@<C7>[27mD$[7m^D^X^@<90>^@<C7>^D[27m$[7m^@^M^E^H<E8>[27m-[7m^]^@^@<C9><C3>[27mU[7m<89><E5>[27mì[7m<83><EC>[27m([7m<8D>[27mE[7m<F0><89>[27mD[7m<C7>D[27m$[7m^D^H^@<90>^@<C7>^D[27m$[7m^@^M^E^H<E8><86>ESC^@^@<8D>[27mE[7m<F4>[27mD[7m<89>[27mD[7m<C7>D[27m$[7m^D^L^@<90>^@<C7>^D[27m$[7m^@^M^E^H<E8>[27mk[7mESC^@^@<8B>[27mE[7m<F4><85><C0>[27mt[7m^N<8B>[27mE[7m<F0>[27m
509[7m<85><C0>[27mu[7m^G<B8>^A^@^@^@<EB>^E<B8>^@^@^@^@<C9>[27mÐ[7m<90><90>[27mU[7m<89><E5><83><EC>^X<C7>[27mD[7m^A[27m[7m^@^@^@<C7>[27mD$[7m^D^@^@<8C>^@<C7>^D[27m$[7m^@^M^E^H<E8><AE>^\^@^@<C7>[27mD[7m^@^@^@^@<C7>[27mD$[7m^D^@^@[27m
510[7m<8C>^@<C7>^D[27m$[7m^@^M^E^H<E8><92>^\^@^@<C7>[27mD[7m^@^@^@^@<C7>[27mD$[7m^D^H^@<8C>^@<C7>^D[27m$[7m^@^M^E[27m
511[7m^H<E8>[27mv[7m^\^@^@<C7>[27mD[7m^@^@^@^@<C7>[27mD$[7m^D[27m [7m^@<8C>^@<C7>^D[27m$[7m^@^M^E^H<E8>[27mZ[7m^\^@^@<C9><C3>[27mU
512[7m<89><E5><83><EC>[27m8[7m<A1><94>^L^E^H<83><F8>^A[27mu[7m^V<C7>^D[27m$H[7m<DC>^D^H<E8>^P<EE><FF><FF>[27m
513[7m<B8>^@^@^@^@<E9><A5>^D^@^@<C7>[27mD[7m^B^@^@^@<C7>[27mD$[7m^D^@^@<8C>^@<C7>^D[27m$[7m^@^M^E^H<E8>^V^\[27m[7m^@^@<8D>[27mE[7m<F0><89>[27mD[7m<C7>D[27m$[7m^D^L^@<8C>^@<C7>^D[27m$[7m^@^M^E^H<E8>[27mw[7m^Z^@^@<8D>[27mE[7m<EC><89>[27mD[7m<C7>[27mD[7mD[27m$[7m^D[27m$[7m^@<8C>^@<C7>^D[27m$[7m^@^M^E^H<E8>[27m\[7m^Z^@^@<8D>[27mE[7m<F4><89>[27mD[7m<C7>D[27m$[7m^D^D^@<8C>^@<C7>^D[27m$[7m^@[27m[7m^M^E^H<E8>[27mA[7m^Z^@^@<8B>[27mE[7m<F4><83><E0>^D<85><C0>^O<95><C0>^O<B6>[27mȋE[7m<F0><83><E0>^A<84>[27mt[7m<C0>[27mt/[7m<8B>[27mE[7m<F0><83><E0>^B<85><C0>[27mt%[7m<8B>[27mE[7m<EC><83><E0>^A<84><C0>[27mt[7mESC<8B>[27mE[7m<EC><83>[27m
514:[K
515[K[7m<E0>^B<85><C0>[27mt[7m^Q<8B>[27mE[7m<F4><83><E0>^A<84><C0>[27mt[7m^G<BA>^A^@^@^@<EB>^E<BA>^@^@^@^@[27m
516[7m<8B>[27mE[7m<F4><83><E0>^A<84><C0>[27mt[7m^Q<8B>[27mE[7m<F4><83><E0>^D<85><C0>[27mt[7m^G<B8>[27m\[7m<DC>^D^H<EB>^E[27m
517[7m<B8>[27ma[7m<DC>^D^H<89>[27mL$[7m^L<89>[27mT[7m<89>D[27m$[7m^D<C7>^D[27m$h[7m<DC>^D^H<E8>^U<ED><FF><FF><8D>[27mE[7m<F4>[27m
518[7m<89>[27mD[7m<C7>D[27m$[7m^D^L^@<8C>^@<C7>^D[27m$[7m^@^M^E^H<E8><A2>^Y^@^@<8B>[27mE[7m<F4><83><E0>^D<85><C0>[27m
519[7m^O<95><C0>^O<B6>[27mȋE[7m<F4><83><E0>^B<85><C0>^O<95><C0>^O<B6>[27mЋE[7m<F4><83><E0>^A<85><C0>[27m[7m^O<95><C0>^O<B6><C0><89>[27mL$[7m^L<89>[27mT[7m<89>D[27m$[7m^D<C7>^D[27m$[7m<98><DC>^D^H<E8><B8><EC><FF><FF>[27m‹[7m<8B>[27mE[7m<F4><83><E0>^A<85><C0>[27mu[7m^X<8B>[27mE[7m<F4><83><E0>^B<85><C0>[27mu[7m^N<C7>^D[27m$[7m<F0><DC>^D^H[27m
520[7m<E8><98><EC><FF><FF><EB>^L<C7>^D[27m$[7m^\<DD>^D^H<E8><8A><EC><FF><FF><8B>[27mE[7m<F4>[27m%[7m^@<FF>[27m
521[7m<FF>^@<89><C1><C1><E9>^H<8B>[27mE[7m<F4><83><E0>^P<85><C0>^O<95><C0>^O<B6>[27mЋE[7m<F4><83>[27m
522[7m<E0>^H<85><C0>^O<95><C0>^O<B6><C0><89>[27mL$[7m^L<89>[27mT[7m<89>D[27m$[7m^D<C7>^D[27m$ [7m<DD>^D^H<E8>[27mI[7m<EC>[27mÿ[7m<FF><FF><8D>[27mE[7m<F4><89>[27mD[7m<C7>D[27m$[7m^D^P^@<8C>^@<C7>^D[27m$[7m^@^M^E^H<E8><D6>^X^@^@<8B>[27mE[7m<F4>[27m
523[7m<BA>^@^@^@^@<89>[27mE[7m<E0><89>[27mU[7m<E4><8B>[27mE[7m<E0><8B>[27mU[7m<E4><89>[27m¸[7m^@^@^@^@<89>[27mE[7m<E0><89>[27mU[7m<E4>[27m
524[7m<8D>[27mE[7m<F4><89>[27mD[7m<C7>D[27m$[7m^D^T^@<8C>^@<C7>^D[27m$[7m^@^M^E^H<E8><9A>^X^@^@<8B>[27mE[7m<F4><BA>^@^@^@[27m[7m^@^A[27mE[7m<E0>^Q[27mU[7m<E4><8D>[27mE[7m<F4><89>[27mD[7m<C7>D[27m$[7m^D^X^@<8C>^@<C7>^D[27m$[7m^@^M^E^H<E8>[27mq[7m^X^@^@<8B>[27mE
525[7m<F4><BA>^@^@^@^@<89>[27mE[7m<U+0609>[27mU܋E؋U܉¸[7m^@^@^@^@<89>[27mE[7m<U+0609>[27mU܍E[7m<F4><89>[27mD[7m<C7>[27mD$[7m^D^\[27m
526[7m^@<8C>^@<C7>^D[27m$[7m^@^M^E^H<E8>[27m5[7m^X^@^@<8B>[27mE[7m<F4><BA>^@^@^@^@^A[27mE[7m<D8>^Q[27mU܋E[7m<E0><8B>[27mU[7m<E4>[27mD[7m<89>[27mD$[7m^D<89>[27mT[7m<C7>^D[27m$x[7m<DD>^D^H<E8>[27me[7m<EB><FF><FF><8B>[27mE؋U܉D$[7m^D<89>[27mT[7m<C7>^D[27m$[7m<C1><DD>^D[27m[7m^H<E8>[27mK[7m<EB><FF><FF><8D>[27mE[7m<F4><89>[27mD[7m<C7>D[27m$[7m^D[27m$[7m^@<8C>^@<C7>^D[27m$[7m^@^M^E^H<E8><D8>^W^@^@[27m
527[7m<8B>[27mE[7m<F4><83><E0>^D<85><C0>^O<95><C0>^O<B6>[27mȋE[7m<F4><83><E0>^B<85><C0>^O<95><C0>^O[27m
528[7m<B6>[27mЋE[7m<F4><83><E0>^A<85><C0>^O<95><C0>^O<B6><C0><89>[27mL$[7m^L<89>[27mT[7m<89>D[27m$[7m^D<C7>^D[27m$[7m<C8>[27m[7m<DD>^D^H<E8><EE><EA><FF><FF><8B>[27mE[7m<F4><83><E0>^A<85><C0>[27mu[7m^X<8B>[27mE[7m<F4><83><E0>^B[27m
529[7m<85><C0>[27mu[7m^N<C7>^D[27m$[7m<F0><DC>^D^H<E8><CE><EA><FF><FF><EB>^L<C7>^D[27m$[7m^\<DD>^D^H<E8>[27m
530[7m<C0><EA><FF><FF><8B>[27mE[7m<F4>[27m%[7m^@<FF><FF>^@<89><C1><C1><E9>^H<8B>[27mE[7m<F4><83><E0>^P<85>[27m
531:[K
532[K[7m<C0>^O<95><C0>^O<B6>[27mЋE[7m<F4><83><E0>^H<85><C0>^O<95><C0>^O<B6><C0><89>[27mL$[7m^L<89>[27mT
533[7m<89>D[27m$[7m^D<C7>^D[27m$ [7m<DD>^D^H<E8>^?<EA><FF><FF><8D>[27mE[7m<F4><89>[27mD[7m<C7>D[27m$[7m^D[27m([7m^@<8C>^@<C7>^D[27m$[7m^@^M^E^H<E8>^L^W^@^@<8B>[27mE[7m<F4><BA>^@^@^@^@<89>[27mE[7m<E0><89>[27mU[7m<E4><8B>[27mE[7m<E0><8B>[27mU[7m<E4>[27m
534[7m<89>[27m¸[7m^@^@^@^@<89>[27mE[7m<E0><89>[27mU[7m<E4><8D>[27mE[7m<F4><89>[27mD[7m<C7>D[27m$[7m^D[27m,[7m^@<8C>^@<C7>^D[27m$[7m^@^M^E^H[27m
535[7m<E8><D0>^V^@^@<8B>[27mE[7m<F4><BA>^@^@^@^@^A[27mE[7m<E0>^Q[27mU[7m<E4><8D>[27mE[7m<F4><89>[27mD[7m<C7>D[27m$[7m^D[27m0[7m^@<8C>^@[27m[7m<C7>^D[27m$[7m^@^M^E^H<E8><A7>^V^@^@<8B>[27mE[7m<F4><BA>^@^@^@^@<89>[27mE[7m<U+0609>[27mU܋E؋U܉¸[7m^@^@^@^@[27m
536[7m<89>[27mE[7m<U+0609>[27mU܍E[7m<F4><89>[27mD[7m<C7>D[27m$[7m^D[27m4[7m^@<8C>^@<C7>^D[27m$[7m^@^M^E^H<E8>[27mk[7m^V^@^@<8B>[27mE[7m<F4>[27m
537[7m<BA>^@^@^@^@^A[27mE[7m<D8>^Q[27mU܋E[7m<E0><8B>[27mU[7m<E4><89>[27mD$[7m^D<89>[27mT[7m<C7>^D[27m$ [7m<DE>^D^H<E8><9B><E9>[27m
538[7m<FF><FF><8B>[27mE؋U܉D$[7m^D<89>[27mT[7m<C7>^D[27m$[7m<C1><DD>^D^H<E8><81><E9><FF><FF><8B>[27mE[7m<F4><83>[27m
539[7m<E0>^A<84><C0>[27mt[7m^Q<8B>[27mE[7m<F4><83><E0>^D<85><C0>[27mt[7m^G<B8>^A^@^@^@<EB>^E<B8>^@^@^@^@[27m
540[7m<C9><C3>[27mU[7m<89><E5><83><EC>^X<C7>[27mD[7m^@^@^@^@<C7>[27mD$[7m^D^@^@<8C>^@<C7>^D[27m$[7m^@^M^E^H<E8>[27mi[7m^W[27m[7m^@^@<C9><C3>[27mU[7m<89><E5><83><EC>[27m([7m<A1><94>^L^E^H<83><F8>^A^O<84><9B>^@^@^@<8D>[27mE[7m<F4>[27m
541[7m<89>[27mD[7m<C7>D[27m$[7m^D^D^@<8C>^@<C7>^D[27m$[7m^@^M^E^H<E8><B4>^U^@^@<8D>[27mE[7m<F0><89>[27mD[7m<C7>D[27m$[7m^D^L^@[27m
542[7m<8C>^@<C7>^D[27m$[7m^@^M^E^H<E8><99>^U^@^@<8D>[27mE[7m<EC><89>[27mD[7m<C7>D[27m$[7m^D[27m$[7m^@<8C>^@<C7>^D[27m$[7m^@^M^E[27m
543[7m^H<E8>[27m~[7m^U^@^@<8B>[27mE[7m<F0><83><E0>^A<84><C0>[27mt9[7m<8B>[27mE[7m<F0><83><E0>^B<85><C0>[27mt/[7m<8B>[27mE[7m<EC>[27mà[7m<83><E0>^A<84><C0>[27mt%[7m<8B>[27mE[7m<EC><83><E0>^B<85><C0>[27mt[7mESC<8B>[27mE[7m<F4><83><E0>^A<84><C0>[27mt
544[7m^Q<8B>[27mE[7m<F4><83><E0>^B<85><C0>[27mt[7m^G<B8>^A^@^@^@<EB>^E<B8>^@^@^@^@<EB>^E<B8>^A^@^@^@[27mÃ[7m<C9>[27mÐU[7m<89><E5><83><EC>[27m([7m<C7>[27mE[7m<F4>^@^@^@^@<EB>[27m [7m<8B>[27mE[7m<F4><C7>^D<85><A0>^L^E^H^@^@^@[27m[7m^@<8B>[27mE[7m<F4><C7>^D<85><B0>^L^E^H^@^@^@^@<83>[27mE[7m<F4>^A<83>[27m}[7m<F4>^C[27m~[7m<DA><C7>[27mD[7m^@^@^@^@[27m
545[7m<C7>[27mD$[7m^D^D^@<9C>^@<C7>^D[27m$[7m^@^M^E^H<E8>[27m_[7m^V^@^@<C7>^D[27m$[7m^A^@^@^@<E8>^G<EA><FF><FF>[27m
546[7m<C7>[27mD[7m^_^@^@^@<C7>[27mD$[7m^D^L^@<9C>^@<C7>^D[27m$[7m^@^M^E^H<E8>[27m7[7m^V^@^@<C7>[27mD[7m^B^@^@^@<C7>[27mD$[7m^D^D[27m[7m^@<9C>^@<C7>^D[27m$[7m^@^M^E^H<E8>ESC^V^@^@<C9><C3>[27mU[7m<89><E5><83><EC>[27m8[7m<C7>[27mE[7m<D8>^A^@^@^@[27m
547[7m<A1>[27m [7m^L^E^H<85><C0>[27mt[7m^K<A1>[27m [7m^L^E^H^O<B7>^@<98><EB>^E<B8><FF><FF><FF><FF><89>[27mEÜ¡ [7m^L[27m:[K
548[K[7m^E^H<85><C0>[27mt[7m^L<A1>[27m [7m^L^E^H^O<B7>[27m@[7m^B<98><EB>^E<B8><FF><FF><FF><FF><89>[27mE[7m<E0><8B>[27mE܍HH[7m^A<A1>[27m [7m^L^E^H<8B>[27mU[7m<E0><89>[27mT[7m<89>[27mL$[7m^D<89>^D[27m$[7m<E8><F9><E6><FF><FF><C7>[27mE[7m<E4>^@^@^@^@[27mó[7m<E9><F3>^@^@^@<8B>[27mE[7m<E4><83><C0>^A<89>[27mD$[7m^D<C7>^D[27m$i[7m<DE>^D^H<E8>[27mg[7m<E7><FF><FF><8B>[27mE
549[7m<E4><C1><E0>^O<8D><90>^@[27m [7m<9E>^@<8D>[27mE[7m<F0><89>[27mD[7m<89>T[27m$[7m^D<C7>^D[27m$[7m^@^M^E^H<E8><EC>^S^@[27m[7m^@<8B>[27mE[7m<F0>[27m%[7m^@^A^@^@<85><C0>[27mt[7m^]<8B>[27mE[7m<F0>[27m%[7m^@^@^O^@<C1><E8>^P<89>[27mD$[7m^D<C7>^D[27m$u[7m<DE>[27m
550[7m^D^H<E8>^]<E7><FF><FF><EB>^S<C7>^D[27m$[7m<81><DE>^D^H<E8>^O<E7><FF><FF><C7>[27mE[7m<D8>^@^@^@[27m[7m^@<8B>[27mE[7m<E4><C1><E0>^O<8D><90>^D[27m [7m<9E>^@<8D>[27mE[7m<EC><89>[27mD[7m<89>T[27m$[7m^D<C7>^D[27m$[7m^@^M^E^H<E8>[27m
551[7m<8D>^S^@^@<8B>[27mE[7m<E4><C1><E0>^O<8D><90>^H[27m [7m<9E>^@<8D>[27mE[7m<E8><89>[27mD[7m<89>T[27m$[7m^D<C7>^D[27m$[7m^@^M[27m
552[7m^M^E^H<E8>[27mj[7m^S^@^@<8B>[27mU[7m<E8><8B>[27mE[7m<EC><89>[27mT[7m<89>D[27m$[7m^D<C7>^D[27m$[7m<8A><DE>^D^H<E8><A8><E6>[27m
553[7m<FF><FF><C7>^D[27m$[7m<9E><DE>^D^H<E8><9C><E6><FF><FF><8B>[27mE[7m<E8><85><C0>[27mt[7m^G<C7>[27mE[7m<D8>^@^@[27m[7m^@^@<83>[27mE[7m<E4>^A<83>[27m}[7m<E4>^C^O<8E>^C<FF><FF><FF><A1>[27m [7m^L^E^H<8B>[27mU[7m<E0><89>[27mT[7m<8B>U[27m܉T$
554[7m^D<89>^D[27m$[7m<E8><D5><E5><FF><FF><83>[27m}[7m<D8>^@[27mt[7m^G<B8><A0><DE>^D^H<EB>^E<B8><A5><DE>^D[27m
555[7m^H<89>[27mD$[7m^D<C7>^D[27m$[7m<AA><DE>^D^H<E8>[27mC[7m<E6><FF><FF><8B>[27mE܍H[7m^E<A1>[27m [7m^L^E^H<8B>[27mU[7m<E0><89>[27mT$[7m<89>L[27m$[7m^D<89>^D[27m$[7m<E8><95><E5><FF><FF><8B>[27mE[7m<D8><C9><C3>[27mU[7m<89><E5><83><EC>^X<C7>[27mD[7m^@^@[27m[7m^@^@<C7>[27mD$[7m^D^D^@<9C>^@<C7>^D[27m$[7m^@^M^E^H<E8>[27m*[7m^T^@^@<C9><C3>[27mU[7m<89><E5><83><EC>[27m8[7m<C7>[27mE
556[7m<E0>^A^@^@^@<C7>[27mE[7m<E4>^@^@^@^@<E9><8E>^@^@^@<8B>[27mE[7m<E4><C1><E0>^O<8D><90>^@[27m [7m<9E>^@[27m
557[7m<8D>[27mE[7m<F0><89>[27mD[7m<89>T[27m$[7m^D<C7>^D[27m$[7m^@^M^E^H<E8>[27mh[7m^R^@^@<8B>[27mE[7m<F0>[27m%[7m^@^A^@^@<85><C0>[27mu[7m^G[27m
558[7m<C7>[27mE[7m<E0>^@^@^@^@<8B>[27mE[7m<E4><C1><E0>^O<8D><90>^D[27m [7m<9E>^@<8D>[27mE[7m<EC><89>[27mD[7m<89>T[27m$[7m^D<C7>[27m
559[7m^D[27m$[7m^@^M^E^H<E8>[27m2[7m^R^@^@<8B>[27mE[7m<E4><C1><E0>^O<8D><90>^H[27m [7m<9E>^@<8D>[27mE[7m<E8><89>[27mD[7m<89>T[27m$[7m^D[27m[7m<C7>^D[27m$[7m^@^M^E^H<E8>^O^R^@^@<8B>[27mE[7m<E8><85><C0>[27mt[7m^G<C7>[27mE[7m<E0>^@^@^@^@<83>[27mE[7m<E4>^A<83>[27m}[7m<E4>^C^O<8E>[27mh[7m<FF><FF><FF><8B>[27mE[7m<E0><C9>[27mÐ[7m<90>[27mU[7m<89><E5>[27m][7m<C3>[27mU[7m<89><E5><83><EC>[27mh[7m<C7>[27mE[7m<F0>^H^@^@^@<C7>[27mE[7m<BC>^A^@^@^@<A1>[27m [7m^L^E^H<85><C0>[27mt[7m^K<A1>[27m [7m^L^E^H^O<B7>^@<98><EB>^E[27m¸[7m<B8><FF><FF><FF><FF><89>[27mE[7m<C0><A1>[27m [7m^L^E^H<85><C0>[27mt[7m^L<A1>[27m [7m^L^E^H^O<B7>[27m@[7m^B<98><EB>[27m
560:[K
561[K[7m^E<B8><FF><FF><FF><FF><89>[27mEċE[7m<C0><8D>[27mH[7m^A<A1>[27m [7m^L^E^H<8B>[27mUĉT[7m<89>L[27m$[7m^D<89>^D[27m$[7m<E8>[27mD
562[7m<E4><FF><FF><C7>[27mE[7m<D8>^@^@^@^@<E9><A4>^A^@^@<C7>[27mD$[7m^D^H^@[27mD[7m^@<8B>[27mE[7m<U+0609>^D[27m$[7m<E8>[27m
563[7m<FB>^A^@^@<89>[27mE[7m<D4><C7>[27mD$[7m^D^L^@[27mD[7m^@<8B>[27mE[7m<U+0609>^D[27m$[7m<E8><E5>^A^@^@<89>[27mEЋE[7m<D4><C1>[27m
564[7m<E0>^P^K[27mEЉE[7m<CC><C7>[27mD$[7m^D[27md[7m^@[27mD[7m^@<8B>[27mE[7m<U+0609>^D[27m$[7m<E8><C3>^A^@^@<89>[27mEȋE؃[7m<C0>^A<89>[27mD$
565[7m^D<C7>^D[27m$[7m<B8><DE>^D^H<E8>[27md[7m<E4><FF><FF><83>[27m}[7m<D4>^@[27mx[7m^F<83>[27m}[7m<D0>^@[27my[7m^U<C7>^D[27m$[7m<C5>[27m
566[7m<DE>^D^H<E8>[27mL[7m<E4><FF><FF><C7>[27mE[7m<BC>^@^@^@^@<EB>[27m?[7m<8B>[27mẼ[7m<E0><F0>[27m=[7m<B0>[27m` [7m^@[27mt[7m^\<8B>[27mẺD$
567[7m^D<C7>^D[27m$[7m<E3><DE>^D^H<E8>[27m#[7m<E4><FF><FF><C7>[27mE[7m<BC>^@^@^@^@<EB>^V<8B>[27mẼ[7m<E0>^O<89>[27mD$[7m^D[27m[7m<C7>^D[27m$[7m<FB><DE>^D^H<E8>^D<E4><FF><FF><83>[27m}[7m<C8>^@[27my[7m^Q<C7>^D[27m$[7m^C<DF>^D^H<E8><F2><E3>[27mÿ[7m<FF><FF><E9><B9>^@^@^@<C7>^D[27m$[7m^X<DF>^D^H<E8><E1><E3><FF><FF><8B>[27mEȃ[7m<E0>^D<85><C0>[27mt[7m^G<B8>ESC<DF>^D^H<EB>^E<B8>^^<DF>^D^H<89>[27mD$[7m^D<C7>^D[27m$#[7m<DF>^D^H<E8><BB><E3><FF>[27m
568[7m<FF><8B>[27mE[7m<C8>[27m%[7m^@^G^@^@<C1><F8>^H<83><F8>^G[27mww[7m<8B>^D<85><C4><DF>^D^H<FF><E0><C7>^D[27m$$'[7m<DF>^D^H<E8><96><E3><FF><FF><EB>[27m`[7m<C7>^D[27m$1[7m<DF>^D^H<E8><88><E3><FF><FF><EB>[27mR[7m<C7>[27m[7m^D[27m$A[7m<DF>^D^H<E8>[27mz[7m<E3><FF><FF><EB>[27mD[7m<C7>^D[27m$Q[7m<DF>^D^H<E8>[27ml[7m<E3><FF><FF><EB>[27m6[7m<C7>^D[27m$c[7m<DF>^D^H<E8>[27m^[7m<E3><FF><FF><EB>[27m([7m<C7>^D[27m$p[7m<DF>^D^H<E8>[27mP[7m<E3><FF><FF><EB>^Z<C7>^D[27m$[7m<82>[27m[7m<DF>^D^H<E8>[27mB[7m<E3><FF><FF><EB>^L<C7>^D[27m$[7m<95><DF>^D^H<E8>[27m4[7m<E3><FF><FF><C7>^D[27m$[7m<A8>[27m
569[7m<DF>^D^H<E8>[27m([7m<E3><FF><FF><83>[27mE[7m<D8>^A<83>[27m}[7m<D8>^C^O<8E>[27mR[7m<FE><FF><FF><A1>[27m [7m^L^E^H[27m
570[7m<8B>[27mUĉT[7m<8B>[27mU[7m<C0><89>[27mT$[7m^D<89>^D[27m$[7m<E8>[27mo[7m<E2><FF><FF><83>[27m}[7m<BC>^@[27mt[7m^G<B8><AA><DF>^D^H[27m
571[7m<EB>^E<B8><AF><DF>^D^H<89>[27mD$[7m^D<C7>^D[27m$[7m<B4><DF>^D^H<E8><DD><E2><FF><FF><8B>[27mE[7m<C0>[27m
572[7m<8D>[27mH[7m^E<A1>[27m [7m^L^E^H<8B>[27mUĉT[7m<89>L[27m$[7m^D<89>^D[27m$[7m<E8>[27m/[7m<E2><FF><FF><8B>[27mE[7m<BC><C9><C3>[27mU[7m<89>[27m
573[7m<E5><83><EC>[27m([7m<C7>[27mE[7m<F0>^T^@^@^@<8B><C1><E0>^G^C[27mE[7m^L<8D>[27mU[7m<F4><89>[27mT[7m<89>D[27m$[7m^D<C7>^D[27m$[7m^@[27m[7m^M^E^H<E8>[27m5[7m^O^@^@<83>[27mm[7m<F0>^A<C7>^D[27m$[7m<E8>^C^@^@<E8><FD><E2><FF><FF><83>[27m}[7m<F0>^@[27m~[7m^G[27m
574[7m<8B>[27mE[7m<F4><85><C0>[27mxËE[7m<F4><85><C0>[27my[7m^G<B8><FF><FF><FF><FF><EB>^H<8B>[27mE[7m<F4>[27m%[7m<FF><FF>[27m
575[7m^@^@<C9><C3>[27mU[7m<89><E5><83><EC>^X<8B>[27mE[7m^P^O<B7>[27mЋ[7m<C1><E0>^G^C[27mE[7m^L<89>[27mT[7m<89>D[27m$[7m^D<C7>^D[27m$:[K
576[K[?1l>[?1049l]0;root@node1-1: ~root@node1-1:~# ls
577[0m[01;34mnetfpga[0m [01;34mpkgs[0m
578[m]0;root@node1-1: ~root@node1-1:~# cd netfpga/projects/selftest/sw/
579]0;root@node1-1: ~/netfpga/projects/selftest/swroot@node1-1:~/netfpga/projects/selftest/sw# ls
580[0m[01;32mbad_pkt_dump[0m or_utils.o selftest_dram.h selftest_reg.c
581bad_pkt_dump.c [01;32mselftest[0m selftest_dram.o selftest_reg.h
582bad_pkt_dump.o selftest.c selftest.h selftest_reg.o
583Makefile selftest_clk.c selftest_mdio.c selftest_serial.c
584or_data_types.h selftest_clk.h selftest_mdio.h selftest_serial.h
585or_ip.c selftest_clk.o selftest_mdio.o selftest_serial.o
586or_ip.h selftest_dma.c selftest.o selftest_sram.c
587or_ip.o selftest_dma.h selftest_phy.c selftest_sram.h
588or_utils.c selftest_dma.o selftest_phy.h selftest_sram.o
589or_utils.h selftest_dram.c selftest_phy.o
590[m]0;root@node1-1: ~/netfpga/projects/selftest/swroot@node1-1:~/netfpga/projects/selftest/sw# vi selftest_phy.c
591[?1049h[?1h=[1;24r[?12;25h[?12l[?25h[27m[m[H[2J[?25l[24;1H"selftest_phy.c" 157L, 3955C[>c[1;1H[34m/* ****************************************************************************
592 * vim:set shiftwidth=2 softtabstop=2 expandtab:
593 * $Id: selftest_phy.c 5971 2010-03-06 06:44:56Z grg $
594 *
595 * Module: selftest_phy.c
596 * Project: NetFPGA selftest
597 * Description: SATA selftest module
598 *
599 * Change history:
600 *
601 */[m
602
603[35m#include [m[31m"../lib/C/reg_defines_selftest.h"[m
604[35m#include [m[31m"selftest.h"[m
605[35m#include [m[31m"selftest_phy.h"[m
606[35m#include [m[31m<curses.h>[m
607[35m#include [m[31m<time.h>[m
608
609[35m#define NUM_PORTS [m[31m4[m
610
611[32mstatic[m [32mint[m prev_good_pkts[NUM_PORTS];
612[32mstatic[m [32mint[m prev_bad_pkts[NUM_PORTS];[24;63H1,1[11CTop[1;1H[?12l[?25hP+q436f\P+q6b75\P+q6b64\P+q6b72\P+q6b6c\P+q2332\P+q2334\P+q2569\P+q2a37\P+q6b31\P+q6b32\[27m[m[H[2J[?25l[1;1H[34m/* ****************************************************************************
613 * vim:set shiftwidth=2 softtabstop=2 expandtab:
614 * $Id: selftest_phy.c 5971 2010-03-06 06:44:56Z grg $
615 *
616 * Module: selftest_phy.c
617 * Project: NetFPGA selftest
618 * Description: SATA selftest module
619 *
620 * Change history:
621 *
622 */[m
623
624[35m#include [m[31m"../lib/C/reg_defines_selftest.h"[m
625[35m#include [m[31m"selftest.h"[m
626[35m#include [m[31m"selftest_phy.h"[m
627[35m#include [m[31m<curses.h>[m
628[35m#include [m[31m<time.h>[m
629
630[35m#define NUM_PORTS [m[31m4[m
631
632[32mstatic[m [32mint[m prev_good_pkts[NUM_PORTS];
633[32mstatic[m [32mint[m prev_bad_pkts[NUM_PORTS];[24;63H1,1[11CTop
634"selftest_phy.c" 157L, 3955C[24;63H[K[24;63H1,1[11CTop[1;1H[?12l[?25hP+q6b33\[?25l[?12l[?25hP+q6b34\P+q6b35\P+q6b36\P+q6b37\P+q6b38\P+q6b39\P+q6b3b\P+q4631\P+q4632\P+q2531\P+q2638\P+q6b62\P+q6b49\P+q6b44\P+q6b68\P+q4037\P+q6b50\P+q6b4e\P+q4b31\P+q4b33\P+q4b34\P+q4b35\P+q6b42\[?25l[24;63H2[2;1H[?12l[?25h[?25l[24;63H3[3;1H[?12l[?25h[?25l[24;63H4[4;1H[?12l[?25h[?25l[24;63H5[5;1H[?12l[?25h[?25l[24;63H6[6;1H[?12l[?25h[?25l[24;63H7[7;1H[?12l[?25h[?25l[24;63H8[8;1H[?12l[?25h[?25l[24;63H9[9;1H[?12l[?25h[?25l[24;63H10,1[10;1H[?12l[?25h[?25l[24;64H1[11;1H[?12l[?25h[?25l[24;64H2,0-1[12;1H[?12l[?25h[?25l[24;64H3,1 [13;1H[?12l[?25h[?25l[24;64H4[14;1H[?12l[?25h[?25l[24;64H5[15;1H[?12l[?25h[?25l[24;64H6[16;1H[?12l[?25h[?25l[24;64H7[17;1H[?12l[?25h[?25l[24;64H8,0-1[18;1H[?12l[?25h[?25l[24;64H9,1 [19;1H[?12l[?25h[?25l[24;63H20,0-1[20;1H[?12l[?25h[?25l[24;64H1,1 [21;1H[?12l[?25h[?25l[24;64H2[22;1H[?12l[?25h[?25l[24;64H3,0-1[23;1H[?12l[?25h[?25l[1;23r[23;1H
635[1;24r[23;1H[34m/*[m[24;1H[K[24;63H24,1[11C0%[23;1H[?12l[?25h[?25l[1;23r[23;1H
636[1;24r[23;1H[34m * Reset the interface and configure it for continuous operation[m[24;63H[K[24;63H25,1[11C1%[23;1H[?12l[?25h[?25l[1;23r[23;1H
637[1;24r[23;1H[34m */[m[24;63H[K[24;63H26,1[11C2%[23;1H[?12l[?25h[?25l[1;23r[23;1H
638[1;24r[23;1H[32mvoid[m phyResetContinuous([32mvoid[m) {[24;63H[K[24;63H27,1[11C2%[23;1H[?12l[?25h[?25l[1;23r[23;1H
639[1;24r[23;2H [32mint[m i;[24;63H[K[24;63H28,1[11C3%[23;1H[?12l[?25h[?25l[1;23r[23;1H
640[1;24r[24;63H[K[24;63H29,0-1[9C4%[23;1H[?12l[?25h[?25l[1;23r[23;1H
641[1;24r[23;2H [38;5;130mfor[m (i = [31m0[m; i < NUM_PORTS; i++) {[24;63H[K[24;63H30,1[11C5%[23;1H[?12l[?25h[?25l[1;23r[23;1H
642[1;24r[23;4H prev_good_pkts[i] = [31m0[m;[24;63H[K[24;63H31,1[11C5%[23;1H[?12l[?25h[?25l[1;23r[23;1H
643[1;24r[23;4H prev_bad_pkts[i] = [31m0[m;[24;63H[K[24;63H32,1[11C6%[23;1H[?12l[?25h[?25l[1;23r[23;1H
644[1;24r[23;2H }[24;63H[K[24;63H33,1[11C7%[23;1H[?12l[?25h[?25l[1;23r[23;1H
645[1;24r[24;63H[K[24;63H34,0-1[9C8%[23;1H[?12l[?25h[?25l[1;23r[23;1H
646[1;24r[23;2H [34m// Stop the test (and wait for the test to stop)[m[24;63H[K[24;63H35,1[11C8%[23;1H[?12l[?25h[?25l[1;23r[23;1H
647[1;24r[23;2H writeReg(&nf2, PHY_TEST_CTRL_REG, [31m0x0[m);[24;63H[K[24;63H36,1[11C9%[23;1H[?12l[?25h[?25l[1;23r[23;1H
648[1;24r[23;2H sleep([31m1[m);[24;63H[K[24;63H37,1[10C10%[23;1H[?12l[?25h[?25l[1;23r[23;1H
649[1;24r[24;63H[K[24;63H38,0-1[8C11%[23;1H[?12l[?25h[?25l[1;23r[23;1H
650[1;24r[23;2H writeReg(&nf2, PHY_TEST_PATTERN_REG, PHY_TEST_PATTERN_ENABLE_MASK);[24;63H[K[24;63H39,1[10C11%[23;1H[?12l[?25h[?25l[1;23r[23;1H
651[1;24r[24;63H[K[24;63H40,0-1[8C12%[23;1H[?12l[?25h[?25l[1;23r[23;1H
652[1;24r[23;2H [34m// Start the test[m[24;63H[K[24;63H41,1[10C13%[23;1H[?12l[?25h[?25l[1;23r[23;1H
653[1;24r[23;2H writeReg(&nf2, PHY_TEST_CTRL_REG, PHY_TEST_CTRL_REPEAT);[24;63H[K[24;63H42,1[10C14%[23;1H[?12l[?25h[?25l[1;23r[23;1H
654[1;24r[7;31H[106m{[23;1H}[m [34m// phyResetContinuous[m[24;63H[K[24;63H43,1[10C14%[23;1H[?12l[?25h[?25l[1;23r[23;1H
655[1;24r[6;31H{[22;1H}[24;63H[K[24;63H44,0-1[8C15%[23;1H[?12l[?25h[?25l[1;23r[23;1H
656[1;24r[23;1H[34m/*[m[24;63H[K[24;63H45,1[10C16%[23;1H[?12l[?25h[?25l[1;23r[23;1H
657[1;24r[23;1H[34m * Show the status of the SATA test when running in continuous mode[m[24;63H[K[24;63H46,1[10C17%[23;1H[?12l[?25h[?25l[1;23r[23;1H
658[1;24r[23;1H[34m *[m[24;63H[K[24;63H47,1[10C17%[23;1H[?12l[?25h[?25l[1;23r[23;1H
659[1;24r[23;1H[34m * Return -- boolean indicating success[m[24;63H[K[24;63H48,1[10C18%[23;1H[?12l[?25h[?25l[1;23r[23;1H
660[1;24r[23;1H[34m */[m[24;63H[K[24;63H49,1[10C19%[23;1H[?12l[?25h[?25l[1;23r[23;1H
661[1;24r[23;1H[32mint[m phyShowStatusContinuous([32mvoid[m) {[24;63H[K[24;63H50,1[10C20%[23;1H[?12l[?25h[?25l[1;23r[23;1H
662[1;24r[23;2H [32munsigned[m [32mint[m val;[24;63H[K[24;63H51,1[10C20%[23;1H[?12l[?25h[?25l[1;23r[23;1H
663[1;24r[23;2H [32munsigned[m [32mint[m port_status;[24;63H[K[24;63H52,1[10C21%[23;1H[?12l[?25h[?25l[1;23r[23;1H
664[1;24r[23;2H [32munsigned[m [32mint[m good_pkts;[24;63H[K[24;63H53,1[10C22%[23;1H[?12l[?25h[?25l[1;23r[23;1H
665[1;24r[23;2H [32munsigned[m [32mint[m bad_pkts;[24;63H[K[24;63H54,1[10C23%[23;1H[?12l[?25h[?25l[1;23r[23;1H
666[1;24r[24;63H[K[24;63H55,0-1[8C23%[23;1H[?12l[?25h[?25l[1;23r[23;1H
667[1;24r[23;2H [32mint[m i;[24;63H[K[24;63H56,1[10C24%[23;1H[?12l[?25h[?25l[1;23r[23;1H
668[1;24r[24;63H[K[24;63H57,0-1[8C25%[23;1H[?12l[?25h[?25l[1;23r[23;1H
669[1;24r[23;2H [32mint[m x, y;[24;63H[K[24;63H58,1[10C26%[23;1H[?12l[?25h[?25l[1;23r[23;1H
670[1;24r[24;63H[K[24;63H59,0-1[8C26%[23;1H[?12l[?25h[?25l[1;23r[23;1H
671[1;24r[23;2H [32mint[m good = [31m1[m;[24;63H[K[24;63H60,1[10C27%[23;1H[?12l[?25h[?25l[1;23r[23;1H
672[1;24r[24;63H[K[24;63H61,0-1[8C28%[23;1H[?12l[?25h[?25l[1;23r[23;1H
673[1;24r[23;2H [34m// Store the current screen position[m[24;63H[K[24;63H62,1[10C29%[23;1H[?12l[?25h[?25l[1;23r[23;1H
674[1;24r[23;2H getyx(stdscr, y, x);[24;63H[K[24;63H63,1[10C29%[23;1H[?12l[?25h[?25l[1;23r[23;1H
675[1;24r[24;63H[K[24;63H64,0-1[8C30%[23;1H[?12l[?25h[?25l[1;23r[23;1H
676[1;24r[23;2H [34m// Move down a line[m[24;63H[K[24;63H65,1[10C31%[23;1H[?12l[?25h[?25l[1;23r[23;1H
677[1;24r[23;2H move(y + [31m1[m, x);[24;63H[K[24;63H66,1[10C32%[23;1H[?12l[?25h[?25l[1;23r[23;1H
678[1;24r[24;63H[K[24;63H67,0-1[8C32%[23;1H[?12l[?25h[?25l[1;23r[23;1H
679[1;24r[23;2H [34m// Read the individual port registers[m[24;63H[K[24;63H68,1[10C33%[23;1H[?12l[?25h[?25l[1;23r[23;1H
680[1;24r[23;2H [38;5;130mfor[m (i = [31m0[m; i < NUM_PORTS; i++) {[24;63H[K[24;63H69,1[10C34%[23;1H[?12l[?25h[?25l[1;23r[23;1H
681[1;24r[23;4H printw([31m" Port [m[35m%d[m[31m:"[m, i + [31m1[m);[24;63H[K[24;63H70,1[10C35%[23;1H[?12l[?25h[?25l[1;23r[23;1H
682[1;24r[24;63H[K[24;63H71,0-1[8C35%[23;1H[?12l[?25h[?25l[1;23r[23;1H
683[1;24r[23;4H [34m// Start with the status register[m[24;63H[K[24;63H72,1[10C36%[23;1H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H readReg(&nf2, PHY_TEST_PHY_0_RX_STATUS_REG + i * PHY_TEST_PHY_GROUP_INST_OFFF[23;1HSET, &port_status);[24;63H[K[24;63H73,1[10C37%[22;1H[?12l[?25h[?25l[1;23r[23;1H
684[1;24r[23;4H [38;5;130mif[m (port_status & [31m0x100[m) {[24;63H[K[24;63H74,1[10C38%[23;1H[?12l[?25h[?25l[1;23r[23;1H
685[1;24r[23;6H printw([31m" link w/ [m[35m%d[m[31m"[m, (port_status & [31m0xf0000[m) >> [31m16[m);[24;63H[K[24;63H75,1[10C39%[23;1H[?12l[?25h[?25l[1;23r[23;1H
686[1;24r[23;4H }[24;63H[K[24;63H76,1[10C40%[23;1H[?12l[?25h[?25l[1;23r[23;1H
687[1;24r[23;4H [38;5;130melse[m {[24;63H[K[24;63H77,1[10C40%[23;1H[?12l[?25h[?25l[1;23r[23;1H
688[1;24r[23;6H printw([31m" no link"[m);[24;63H[K[24;63H78,1[10C41%[23;1H[?12l[?25h[?25l[1;23r[23;1H
689[1;24r[23;6H good = [31m0[m;[24;63H[K[24;63H79,1[10C42%[23;1H[?12l[?25h[?25l[1;23r[23;1H
690[1;24r[23;4H }[24;63H[K[24;63H80,1[10C42%[23;1H[?12l[?25h[?25l[1;23r[23;1H
691[1;24r[24;63H[K[24;63H81,0-1[8C43%[23;1H[?12l[?25h[?25l[1;23r[23;1H
692[1;24r[23;4H [34m// Read the number of good/bad packets[m[24;63H[K[24;63H82,1[10C44%[23;1H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H readReg(&nf2, PHY_TEST_PHY_0_RX_GOOD_PKT_CNT_REG + i * PHY_TEST_PHY_GROUP_INN[23;1HST_OFFSET, &good_pkts);[24;63H[K[24;63H83,1[10C45%[22;1H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H readReg(&nf2, PHY_TEST_PHY_0_RX_ERR_PKT_CNT_REG + i * PHY_TEST_PHY_GROUP_INN[23;1HST_OFFSET, &bad_pkts);[24;63H[K[24;63H84,1[10C46%[22;1H[?12l[?25h[?25l[1;23r[23;1H
693[1;24r[23;4H printw([31m" Good: [m[35m%d[m[31m Bad: [m[35m%d[m[31m"[m, good_pkts, bad_pkts);[24;63H[K[24;63H85,1[10C47%[23;1H[?12l[?25h[?25l[1;23r[23;1H
694[1;24r[24;63H[K[24;63H86,0-1[8C48%[23;1H[?12l[?25h[?25l[1;23r[23;1H
695[1;24r[23;4H printw([31m"[m[35m\n[m[31m"[m);[24;63H[K[24;63H87,1[10C48%[23;1H[?12l[?25h[?25l[1;23r[23;1H
696[1;24r[24;63H[K[24;63H88,0-1[8C49%[23;1H[?12l[?25h[?25l[1;23r[23;1H
697[1;24r[23;4H [34m// Verify if we should reset the counters[m[24;63H[K[24;63H89,1[10C50%[23;1H[?12l[?25h[?25l[1;23r[23;1H
698[1;24r[23;4H [34m/*if ((port_status & 0x1100) == 0x1100) {[m[24;63H[K[24;63H90,1[10C51%[23;1H[?12l[?25h[?25l[1;23r[23;1H
699[1;24r[23;1H[34m // Only reset if the number of good packets has incremented but the bad[m[24;63H[K[24;63H91,1[10C51%[23;1H[?12l[?25h[?25l[1;23r[23;1H
700[1;24r[23;1H[34m // packets have remained the same[m[24;63H[K[24;63H92,1[10C52%[23;1H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;1H[34m if (bad_pkts == prev_bad_pkts[i] && good_pkts != prev_good_pkts[i]) {
701 writeReg(&nf2, PHY_TEST_PHY_0_RX_CTRL_REG + i * PHY_TEST_PHY_GROUP_INST_[m[23;1H[94m@ [m[24;63H[K[24;63H93,1[10C53%[22;1H[?12l[?25h[?25l[1;23r[23;1H
702[1;24r[22;1H[34m writeReg(&nf2, PHY_TEST_PHY_0_RX_CTRL_REG + i * PHY_TEST_PHY_GROUP_INST__[23;1HOFFSET, 0x3);[m[24;63H[K[24;63H94,1[10C54%[22;1H[?12l[?25h[?25l[1;23r[23;1H
703[1;24r[23;1H[34m }[m[24;63H[K[24;63H95,1[10C54%[23;1H[?12l[?25h[?25l[1;23r[23;1H
704[1;24r[24;63H[K[24;63H96,0-1[8C55%[23;1H[?12l[?25h[?25l[1;23r[23;1H
705[1;24r[23;1H[34m // Update the counters[m[24;63H[K[24;63H97,1[10C56%[23;1H[?12l[?25h[?25l[1;23r[23;1H
706[1;24r[23;1H[34m prev_bad_pkts[i] = bad_pkts;[m[24;63H[K[24;63H98,1[10C56%[23;1H[?12l[?25h[?25l[1;23r[23;1H
707[1;24r[23;1H[34m prev_good_pkts[i] = good_pkts;[m[24;63H[K[24;63H99,1[10C57%[23;1H[?12l[?25h[?25l[1;23r[23;1H
708[1;24r[23;1H[34m }*/[m[24;63H[K[24;63H100,1[9C58%[23;1H[?12l[?25h[?25l[1;23r[23;1H
709[1;24r[24;63H[K[24;63H101,0-1[7C59%[23;1H[?12l[?25h[?25l[1;23r[23;1H
710[1;24r[23;4H [34m// Update the good flag[m[24;63H[K[24;63H102,1[9C59%[23;1H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H [38;5;130mif[m (bad_pkts != [31m0[m)[23;6H good = [31m0[m;[24;63H[K[24;63H103,1[9C61%[22;1H[?12l[?25h[?25l[24;65H4[23;1H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;2H }[24;63H[K[24;63H105,1[9C62%[22;1H[?12l[?25h[?25l[24;65H6,0-1[23;1H[?12l[?25h[?25l[1;23r[23;1H
711[1;24r[23;2H [34m// Print overall success/failure[m[24;63H[K[24;63H107,1[9C62%[23;1H[?12l[?25h[?25l[1;23r[23;1H
712[1;24r[23;2H move(y, x);[24;63H[K[24;63H108,1[9C63%[23;1H[?12l[?25h[?25l[1;23r[23;1H
713[1;24r[23;2H printw([31m"PHY test: [m[35m%s[m[31m"[m, good ? [31m"pass"[m : [31m"fail"[m);[24;63H[K[24;63H109,1[9C64%[23;1H[?12l[?25h[?25l[1;23r[23;1H
714[1;24r[23;2H move(y + [31m1[m + NUM_PORTS, x);[24;63H[K[24;63H110,1[9C65%[23;1H[?12l[?25h[?25l[1;23r[23;1H
715[1;24r[24;63H[K[24;63H111,0-1[7C65%[23;1H[?12l[?25h[?25l[1;23r[23;1H
716[1;24r[23;2H [38;5;130mreturn[m good;[24;63H[K[24;63H112,1[9C66%[23;1H[?12l[?25h[?25l[1;23r[23;1H
717[1;24r[23;1H} [34m// phyShowStatusContinuous[m[24;63H[K[24;63H113,1[9C67%[23;1H[?12l[?25h[?25l[1;23r[23;1H
718[1;24r[24;63H[K[24;63H114,0-1[7C68%[23;1H[?12l[?25h[?25l[1;23r[23;1H
719[1;24r[23;1H[34m/*[m[24;63H[K[24;63H115,1[9C68%[23;1H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;1H[34m * Stop the interface
720 */[m[24;63H[K[24;63H116,1[9C70%[22;1H[?12l[?25h[?25l[24;65H7[23;1H[?12l[?25h[?25l[1;23r[23;1H
721[1;24r[23;1H[32mvoid[m phyStopContinuous([32mvoid[m) {[24;63H[K[24;63H118,1[9C70%[23;1H[?12l[?25h[?25l[1;23r[23;1H
722[1;24r[23;2H [34m// Stop the test (and wait for the test to stop)[m[24;63H[K[24;63H119,1[9C71%[23;1H[?12l[?25h[?25l[1;23r[23;1H
723[1;24r[23;2H writeReg(&nf2, PHY_TEST_CTRL_REG, [31m0x00000000[m);[24;63H[K[24;63H120,1[9C72%[23;1H[?12l[?25h[?25l[1;23r[23;1H
724[1;24r[20;30H[106m{
725
726
727}[m [34m// phyStopContinuous[m[24;63H[K[24;63H121,1[9C73%[23;1H[?12l[?25h[?25l[1;23r[23;1H
728[1;24r[19;30H{
729
730
731}[24;63H[K[24;63H122,0-1[7C73%[23;1H[?12l[?25h[?25l[1;23r[23;1H
732[1;24r[23;1H[34m/*[m[24;63H[K[24;63H123,1[9C74%[23;1H[?12l[?25h[?25l[1;23r[23;1H
733[1;24r[23;1H[34m * Get the result of the test[m[24;63H[K[24;63H124,1[9C75%[23;1H[?12l[?25h[?25l[1;23r[23;1H
734[1;24r[23;1H[34m *[m[24;63H[K[24;63H125,1[9C76%[23;1H[?12l[?25h[?25l[1;23r[23;1H
735[1;24r[23;1H[34m * Return -- boolean indicating success[m[24;63H[K[24;63H126,1[9C76%[23;1H[?12l[?25h[?25l[1;23r[23;1H
736[1;24r[23;1H[34m */[m[24;63H[K[24;63H127,1[9C77%[23;1H[?12l[?25h[?25l[1;23r[23;1H
737[1;24r[23;1H[32mint[m phyGetResult([32mvoid[m) {[24;63H[K[24;63H128,1[9C78%[23;1H[?12l[?25h[?25l[1;23r[23;1H
738[1;24r[23;2H [32munsigned[m [32mint[m val;[24;63H[K[24;63H129,1[9C79%[23;1H[?12l[?25h[?25l[1;23r[23;1H
739[1;24r[23;2H [32munsigned[m [32mint[m port_status;[24;63H[K[24;63H130,1[9C79%[23;1H[?12l[?25h[?25l[1;23r[23;1H
740[1;24r[23;2H [32munsigned[m [32mint[m good_pkts;[24;63H[K[24;63H131,1[9C80%[23;1H[?12l[?25h[?25l[1;23r[23;1H
741[1;24r[23;2H [32munsigned[m [32mint[m bad_pkts;[24;63H[K[24;63H132,1[9C81%[23;1H[?12l[?25h[?25l[1;23r[23;1H
742[1;24r[24;63H[K[24;63H133,0-1[7C82%[23;1H[?12l[?25h[?25l[1;23r[23;1H
743[1;24r[23;2H [32mint[m i;[24;63H[K[24;63H134,1[9C82%[23;1H[?12l[?25h[?25l[1;23r[23;1H
744[1;24r[24;63H[K[24;63H135,0-1[7C83%[23;1H[?12l[?25h[?25l[1;23r[23;1H
745[1;24r[23;2H [32mint[m good = [31m1[m;[24;63H[K[24;63H136,1[9C84%[23;1H[?12l[?25h[?25l[1;23r[23;1H
746[1;24r[24;63H[K[24;63H137,0-1[7C85%[23;1H[?12l[?25h[?25l[1;23r[23;1H
747[1;24r[23;2H [34m// Read the individual port registers[m[24;63H[K[24;63H138,1[9C85%[23;1H[?12l[?25h[?25l[1;23r[23;1H
748[1;24r[23;2H [38;5;130mfor[m (i = [31m0[m; i < NUM_PORTS; i++) {[24;63H[K[24;63H139,1[9C86%[23;1H[?12l[?25h[?25l[1;23r[23;1H
749[1;24r[23;4H [34m// Start with the status register[m[24;63H[K[24;63H140,1[9C87%[23;1H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H readReg(&nf2, PHY_TEST_PHY_0_RX_STATUS_REG + i * PHY_TEST_PHY_GROUP_INST_OFFF[23;1HSET, &port_status);[24;63H[K[24;63H141,1[9C88%[22;1H[?12l[?25h[?25l[1;23r[23;1H
750[1;24r[23;4H [38;5;130mif[m ((port_status & [31m0x100[m) == [31m0[m) {[24;63H[K[24;63H142,1[9C88%[23;1H[?12l[?25h[?25l[1;23r[23;1H
751[1;24r[23;6H good = [31m0[m;[24;63H[K[24;63H143,1[9C89%[23;1H[?12l[?25h[?25l[1;23r[23;1H
752[1;24r[23;4H }[24;63H[K[24;63H144,1[9C90%[23;1H[?12l[?25h[?25l[1;23r[23;1H
753[1;24r[24;63H[K[24;63H145,0-1[7C91%[23;1H[?12l[?25h[?25l[1;23r[23;1H
754[1;24r[23;4H [34m// Read the number of good/bad packets[m[24;63H[K[24;63H146,1[9C91%[23;1H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H readReg(&nf2, PHY_TEST_PHY_0_RX_GOOD_PKT_CNT_REG + i * PHY_TEST_PHY_GROUP_INN[23;1HST_OFFSET, &good_pkts);[24;63H[K[24;63H147,1[9C92%[22;1H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H readReg(&nf2, PHY_TEST_PHY_0_RX_ERR_PKT_CNT_REG + i * PHY_TEST_PHY_GROUP_INSS[23;1HT_OFFSET, &bad_pkts);[24;63H[K[24;63H148,1[9C93%[22;1H[?12l[?25h[?25l[1;23r[23;1H
755[1;24r[24;63H[K[24;63H149,0-1[7C94%[23;1H[?12l[?25h[?25l[1;23r[23;1H
756[1;24r[23;4H [34m// Update the good flag[m[24;63H[K[24;63H150,1[9C94%[23;1H[?12l[?25h[?25l[1;23r[23;1H
757[1;24r[23;4H [38;5;130mif[m (bad_pkts != [31m0[m) {[24;63H[K[24;63H151,1[9C95%[23;1H[?12l[?25h[?25l[1;23r[23;1H
758[1;24r[23;6H good = [31m0[m;[24;63H[K[24;63H152,1[9C96%[23;1H[?12l[?25h[?25l[1;23r[23;1H
759[1;24r[23;4H }[24;63H[K[24;63H153,1[9C97%[23;1H[?12l[?25h[?25l[1;23r[23;1H
760[1;24r[23;2H }[24;63H[K[24;63H154,1[9C97%[23;1H[?12l[?25h[?25l[1;23r[23;1H
761[1;24r[24;63H[K[24;63H155,0-1[7C98%[23;1H[?12l[?25h[?25l[1;23r[23;1H
762[1;24r[23;2H [38;5;130mreturn[m good;[24;63H[K[24;63H156,1[9C99%[23;1H[?12l[?25h[?25l[1;23r[23;1H
763[1;24r[23;1H} [34m// phyGetResult[m[24;63H[K[24;63H157,1[9CBot[23;1H[?12l[?25h[?25l[24;65H6[22;1H[?12l[?25h[?25l[24;65H5,0-1[21;1H[?12l[?25h[?25l[24;65H4,1 [20;1H[?12l[?25h[?25l[24;65H3[19;1H[?12l[?25h[?25l[24;65H2[18;1H[?12l[?25h[?25l[24;65H1[17;1H[?12l[?25h[?25l[24;65H0[16;1H[?12l[?25h[?25l[24;64H49,0-1[15;1H[?12l[?25h[?25l[24;65H8,1 [13;1H[?12l[?25h[?25l[24;65H7[11;1H[?12l[?25h[?25l[24;65H6[10;1H[?12l[?25h[?25l[24;65H5,0-1[9;1H[?12l[?25h[?25l[24;65H4,1 [8;1H[?12l[?25h[?25l[24;65H3[7;1H[?12l[?25h[?25l[24;65H2[6;1H[?12l[?25h[?25l[24;65H1[4;1H[?12l[?25h[?25l[24;65H0[3;1H[?12l[?25h[?25l[24;64H39[2;1H[?12l[?25h[?25l[24;65H8[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H137,0-1[7C99%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32mint[m good = [31m1[m;[24;63H[K[24;63H136,1[9C98%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H135,0-1[7C97%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32mint[m i;[24;63H[K[24;63H134,1[9C97%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H133,0-1[7C96%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32munsigned[m [32mint[m bad_pkts;[24;63H[K[24;63H132,1[9C95%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32munsigned[m [32mint[m good_pkts;[24;63H[K[24;63H131,1[9C94%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32munsigned[m [32mint[m port_status;[24;63H[K[24;63H130,1[9C94%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32munsigned[m [32mint[m val;[24;63H[K[24;63H129,1[9C93%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[32mint[m phyGetResult([32mvoid[m) {[23;1H[94m@ [m[24;63H[K[24;63H128,1[9C92%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m */[m[24;63H[K[24;63H127,1[9C92%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m * Return -- boolean indicating success[m[23;1H[94m@ [m[24;63H[K[24;63H126,1[9C91%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m *[m[24;63H[K[24;63H125,1[9C91%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m * Get the result of the test[m[24;63H[K[24;63H124,1[9C91%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m/*[m[24;63H[K[24;63H123,1[9C90%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H122,0-1[7C89%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H} [34m// phyStopContinuous[m[24;63H[K[24;63H121,1[9C88%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H writeReg(&nf2, PHY_TEST_CTRL_REG, [31m0x00000000[m);[24;63H[K[24;63H120,1[9C88%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [34m// Stop the test (and wait for the test to stop)[m[23;1H[94m@ [m[24;63H[K[24;63H119,1[9C87%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[32mvoid[m phyStopContinuous([32mvoid[m) {[24;63H[K[24;63H118,1[9C87%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m */[m[24;63H[K[24;63H117,1[9C86%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m * Stop the interface[m[24;63H[K[24;63H116,1[9C85%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m/*[m[24;63H[K[24;63H115,1[9C85%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H114,0-1[7C84%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H} [34m// phyShowStatusContinuous[m[24;63H[K[24;63H113,1[9C83%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [38;5;130mreturn[m good;[24;63H[K[24;63H112,1[9C82%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H111,0-1[7C82%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H move(y + [31m1[m + NUM_PORTS, x);[24;63H[K[24;63H110,1[9C81%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H printw([31m"PHY test: [m[35m%s[m[31m"[m, good ? [31m"pass"[m : [31m"fail"[m);[24;63H[K[24;63H109,1[9C80%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H move(y, x);[24;63H[K[24;63H108,1[9C79%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [34m// Print overall success/failure[m[24;63H[K[24;63H107,1[9C79%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H106,0-1[7C78%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H }[24;63H[K[24;63H105,1[9C77%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;6H good = [31m0[m;[24;63H[K[24;63H104,1[9C76%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;4H [38;5;130mif[m (bad_pkts != [31m0[m)[24;63H[K[24;63H103,1[9C76%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;4H [34m// Update the good flag[m[24;63H[K[24;63H102,1[9C75%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H101,0-1[7C74%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m }*/[m[24;63H[K[24;63H100,1[9C73%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m prev_good_pkts[i] = good_pkts;[m[24;63H[K[24;63H99,1[10C73%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m prev_bad_pkts[i] = bad_pkts;[m[24;63H[K[24;63H98,1[10C72%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m // Update the counters[m[24;63H[K[24;63H97,1[10C71%[1;1H[?12l[?25h[?25l[24;64H8[2;1H[?12l[?25h[?25l[24;64H7[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H96,0-1[8C70%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m }[m[24;63H[K[24;63H95,1[10C70%[1;1H[?12l[?25h[?25l[1;23r[1;1H[2L[1;24r[1;1H[34m writeReg(&nf2, PHY_TEST_PHY_0_RX_CTRL_REG + i * PHY_TEST_PHY_GROUP_INST__[2;1HOFFSET, 0x3);[m[24;63H[K[24;63H94,1[10C68%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m if (bad_pkts == prev_bad_pkts[i] && good_pkts != prev_good_pkts[i]) {[m[24;63H[K[24;63H93,1[10C68%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m // packets have remained the same[m[24;63H[K[24;63H92,1[10C67%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m // Only reset if the number of good packets has incremented but the bad[m[24;63H[K[24;63H91,1[10C66%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;4H [34m/*if ((port_status & 0x1100) == 0x1100) {[m[24;63H[K[24;63H90,1[10C65%[1;1H[?12l[?25h[?25l[24;63H[K[24;1H:[?12l[?25hq[?25l[?12l[?25h
764[?25l[24;1H[K[24;1H[?1l>[?12l[?25h[?1049l]0;root@node1-1: ~/netfpga/projects/selftest/swroot@node1-1:~/netfpga/projects/selftest/sw# ls
765[0m[01;32mbad_pkt_dump[0m or_utils.o selftest_dram.h selftest_reg.c
766bad_pkt_dump.c [01;32mselftest[0m selftest_dram.o selftest_reg.h
767bad_pkt_dump.o selftest.c selftest.h selftest_reg.o
768Makefile selftest_clk.c selftest_mdio.c selftest_serial.c
769or_data_types.h selftest_clk.h selftest_mdio.h selftest_serial.h
770or_ip.c selftest_clk.o selftest_mdio.o selftest_serial.o
771or_ip.h selftest_dma.c selftest.o selftest_sram.c
772or_ip.o selftest_dma.h selftest_phy.c selftest_sram.h
773or_utils.c selftest_dma.o selftest_phy.h selftest_sram.o
774or_utils.h selftest_dram.c selftest_phy.o
775[m]0;root@node1-1: ~/netfpga/projects/selftest/swroot@node1-1:~/netfpga/projects/selftest/sw# grep PHY | more[K[K[K[K[K[K* | mre[Ko[K[Kore
776bad_pkt_dump.c: readReg(&nf2, PHY_TEST_PHY_0_RX_LOG_STATUS_REG, &val);
777bad_pkt_dump.c: readReg(&nf2, PHY_TEST_PHY_0_RX_LOG_EXP_DATA_REG, &val);
778bad_pkt_dump.c: readReg(&nf2, PHY_TEST_PHY_0_RX_LOG_RX_DATA_REG, &val);
779bad_pkt_dump.c: writeReg(&nf2, PHY_TEST_PHY_0_RX_LOG_CTRL_REG, 1);
780Binary file selftest matches
781selftest.c: "PHY interface",
782selftest_mdio.c: for (phy = 0; phy < MAX_PHY_PORTS; phy++) {
783selftest_mdio.c: // Read the PHY ID register
784selftest_mdio.c: phyid_hi = readMDIOReg(phy, MDIO_PHY_0_PHY_ID_HI_REG);
785selftest_mdio.c: phyid_lo = readMDIOReg(phy, MDIO_PHY_0_PHY_ID_LO_REG);
786selftest_mdio.c: auxstatus = readMDIOReg(phy, MDIO_PHY_0_AUX_STATUS_REG);
787selftest_mdio.c: printw(" Invalid PHY Id (Read failed)");
788selftest_mdio.c: else if ((phyid & 0xfffffff0) != 0x002060B0) { //Invalid PHY
789 Id: 0x007f60b1 up, 1000Base-TX full
790selftest_mdio.c: printw(" Invalid PHY Id: 0x%08x", phyid);
791selftest_mdio.c: move(y + 1 + MAX_PHY_PORTS, x);
792selftest_mdio.c: readReg(&nf2, phy * MDIO_PHY_GROUP_INST_OFFSET + addr, &val)
793;
794selftest_mdio.c: writeReg(&nf2, phy * MDIO_PHY_GROUP_INST_OFFSET + addr, val &
7950xffff);
796selftest_mdio.c: for (phy = 0; phy < MAX_PHY_PORTS; phy++) {
797selftest_mdio.c: // Read the PHY ID register
798selftest_mdio.c: phyid_hi = readMDIOReg(phy, MDIO_PHY_0_PHY_ID_HI_REG);
799[7m--More--[27m
800[K]0;root@node1-1: ~/netfpga/projects/selftest/swroot@node1-1:~/netfpga/projects/selftest/sw# vi selftest.c
801[?1049h[?1h=[1;24r[?12;25h[?12l[?25h[27m[m[H[2J[?25l[24;1H"selftest.c" 512L, 10370C[>c[1;1H[34m/* ****************************************************************************
802 * vim:set shiftwidth=2 softtabstop=2 expandtab:
803 * $Id: selftest.c 6010 2010-03-14 08:24:50Z grg $
804 *
805 * Module: selftest.c
806 * Project: NetFPGA 2.1
807 * Description: Interface with the self-test modules on the NetFPGA
808 * to help diagnose problems.
809 *
810 * Change history:
811 *
812 */[m
813
814[35m#include [m[31m<stdio.h>[m
815[35m#include [m[31m<stdlib.h>[m
816[35m#include [m[31m<unistd.h>[m
817
818[35m#include [m[31m<sys/types.h>[m
819[35m#include [m[31m<sys/stat.h>[m
820[35m#include [m[31m<sys/socket.h>[m
821[35m#include [m[31m<sys/time.h>[m
822
823[35m#include [m[31m<net/if.h>[m[24;63H1,1[11CTop[1;1H[?12l[?25hP+q436f\P+q6b75\P+q6b64\P+q6b72\P+q6b6c\P+q2332\P+q2334\P+q2569\P+q2a37\P+q6b31\P+q6b32\[27m[m[H[2J[?25l[1;1H[34m/* ****************************************************************************
824 * vim:set shiftwidth=2 softtabstop=2 expandtab:
825 * $Id: selftest.c 6010 2010-03-14 08:24:50Z grg $
826 *
827 * Module: selftest.c
828 * Project: NetFPGA 2.1
829 * Description: Interface with the self-test modules on the NetFPGA
830 * to help diagnose problems.
831 *
832 * Change history:
833 *
834 */[m
835
836[35m#include [m[31m<stdio.h>[m
837[35m#include [m[31m<stdlib.h>[m
838[35m#include [m[31m<unistd.h>[m
839
840[35m#include [m[31m<sys/types.h>[m
841[35m#include [m[31m<sys/stat.h>[m
842[35m#include [m[31m<sys/socket.h>[m
843[35m#include [m[31m<sys/time.h>[m
844
845[35m#include [m[31m<net/if.h>[m[24;63H1,1[11CTop
846"selftest.c" 512L, 10370C[24;63H[K[24;63H1,1[11CTop[1;1H[?12l[?25hP+q6b33\[?25l[?12l[?25hP+q6b34\P+q6b35\P+q6b36\P+q6b37\P+q6b38\P+q6b39\P+q6b3b\P+q4631\P+q4632\P+q2531\P+q2638\P+q6b62\P+q6b49\P+q6b44\P+q6b68\P+q4037\P+q6b50\P+q6b4e\P+q4b31\P+q4b33\P+q4b34\P+q4b35\P+q6b42\[?25l[24;1H[K[24;1H/[?12l[?25hP[?25l[?12l[?25hH[?25l[?12l[?25hY[?25l[?12l[?25h
847[?25l[27m[m[H[2J[1;4H regStopContinuous,
848 regGetResult,
849 },
850 {
851 [31m"MDIO interface"[m,
852 mdioResetContinuous,
853 mdioShowStatusContinuous,
854 mdioStopContinuous,
855 mdioGetResult,
856 },
857 {
858 [31m"PHY interface"[m,
859 phyResetContinuous,
860 phyShowStatusContinuous,
861 phyStopContinuous,
862 phyGetResult,
863 },
864 {
865 [31m"DRAM controller"[m,
866 dramResetContinuous,
867 dramShowStatusContinuous,
868 dramStopContinuous,
869 dramGetResult,[24;63H110,6[9C20%[12;6H[?12l[?25h[?25l[24;1H/PHY[24;63H[K[24;1H[31msearch hit BOTTOM, continuing at TOP[m[26C110,6[9C20%[24;63H[K[24;63H110,6[9C20%[12;6H[?12l[?25h[?25l[24;65H1[13;6H[?12l[?25h[?25l[24;65H2[14;6H[?12l[?25h[?25l[24;65H3[15;6H[?12l[?25h[?25l[24;65H4[16;6H[?12l[?25h[?25l[24;65H5,4[17;4H[?12l[?25h[?25l[24;65H6,3[18;3H[?12l[?25h[?25l[24;65H7,6[19;6H[?12l[?25h[?25l[24;65H8[20;6H[?12l[?25h[?25l[24;65H9[21;6H[?12l[?25h[?25l[24;64H20[22;6H[?12l[?25h[?25l[24;65H1[23;6H[?12l[?25h[?25l[1;23r[23;1H
870[1;24r[23;2H },[24;1H[K[24;63H122,4[9C20%[23;4H[?12l[?25h[?25l[1;23r[23;1H
871[1;24r[23;2H {[24;63H[K[24;63H123,3[9C20%[23;3H[?12l[?25h[?25l[1;23r[23;1H
872[1;24r[23;4H [31m"SRAM controller"[m,[24;63H[K[24;63H124,6[9C20%[23;6H[?12l[?25h[?25l[1;23r[23;1H
873[1;24r[23;4H sramResetContinuous,[24;63H[K[24;63H125,6[9C20%[23;6H[?12l[?25h[?25l[1;23r[23;1H
874[1;24r[23;4H sramShowStatusContinuous,[24;63H[K[24;63H126,6[9C21%[23;6H[?12l[?25h[?25l[1;23r[23;1H
875[1;24r[23;4H sramStopContinuous,[24;63H[K[24;63H127,6[9C21%[23;6H[?12l[?25h[?25l[1;23r[23;1H
876[1;24r[23;4H sramGetResult,[24;63H[K[24;63H128,6[9C21%[23;6H[?12l[?25h[?25l[1;23r[23;1H
877[1;24r[23;2H },[24;63H[K[24;63H129,4[9C21%[23;4H[?12l[?25h[?25l[1;23r[23;1H
878[1;24r[23;2H {[24;63H[K[24;63H130,3[9C21%[23;3H[?12l[?25h[?25l[1;23r[23;1H
879[1;24r[23;4H [31m"SATA controller"[m,[24;63H[K[24;63H131,6[9C22%[23;6H[?12l[?25h[?25l[1;23r[23;1H
880[1;24r[23;4H serialResetContinuous,[24;63H[K[24;63H132,6[9C22%[23;6H[?12l[?25h[?25l[1;23r[23;1H
881[1;24r[23;4H serialShowStatusContinuous,[24;63H[K[24;63H133,6[9C22%[23;6H[?12l[?25h[?25l[1;23r[23;1H
882[1;24r[23;4H serialStopContinuous,[24;63H[K[24;63H134,6[9C22%[23;6H[?12l[?25h[?25l[1;23r[23;1H
883[1;24r[23;4H serialGetResult,[24;63H[K[24;63H135,6[9C22%[23;6H[?12l[?25h[?25l[1;23r[23;1H
884[1;24r[23;2H },[24;63H[K[24;63H136,4[9C23%[23;4H[?12l[?25h[?25l[1;23r[23;1H
885[1;24r[23;2H {[24;63H[K[24;63H137,3[9C23%[23;3H[?12l[?25h[?25l[1;23r[23;1H
886[1;24r[23;4H [31m"DMA interface"[m,[24;63H[K[24;63H138,6[9C23%[23;6H[?12l[?25h[?25l[1;23r[23;1H
887[1;24r[23;4H dmaResetContinuous,[24;63H[K[24;63H139,6[9C23%[23;6H[?12l[?25h[?25l[1;23r[23;1H
888[1;24r[23;4H dmaShowStatusContinuous,[24;63H[K[24;63H140,6[9C23%[23;6H[?12l[?25h[?25l[1;23r[23;1H
889[1;24r[23;4H dmaStopContinuous,[24;63H[K[24;63H141,6[9C24%[23;6H[?12l[?25h[?25l[1;23r[23;1H
890[1;24r[23;4H dmaGetResult,[24;63H[K[24;63H142,6[9C24%[23;6H[?12l[?25h[?25l[1;23r[23;1H
891[1;24r[23;2H },[24;63H[K[24;63H143,4[9C24%[23;4H[?12l[?25h[?25l[1;23r[23;1H
892[1;24r[23;1H};[24;63H[K[24;63H144,2[9C24%[23;2H[?12l[?25h[?25l[1;23r[23;1H
893[1;24r[24;63H[K[24;63H145,0-1[7C24%[23;1H[?12l[?25h[?25l[1;23r[23;1H
894[1;24r[24;63H[K[24;63H146,0-1[7C25%[23;1H[?12l[?25h[?25l[1;23r[23;1H
895[1;24r[23;1H[34m/*[m[24;63H[K[24;63H147,2[9C25%[23;2H[?12l[?25h[?25l[1;23r[23;1H
896[1;24r[23;1H[34m * Main function[m[24;63H[K[24;63H148,6[9C25%[23;6H[?12l[?25h[?25l[1;23r[23;1H
897[1;24r[23;1H[34m */[m[24;63H[K[24;63H149,3[9C25%[23;3H[?12l[?25h[?25l[1;23r[23;1H
898[1;24r[23;1H[32mint[m main([32mint[m argc, [32mchar[m *argv[])[24;63H[K[24;63H150,6[9C25%[23;6H[?12l[?25h[?25l[1;23r[23;1H
899[1;24r[23;1H{[24;63H[K[24;63H151,1[9C26%[23;1H[?12l[?25h[?25l[1;23r[23;1H
900[1;24r[23;2H [34m// Set the default device[m[24;63H[K[24;63H152,6[9C26%[23;6H[?12l[?25h[?25l[1;23r[23;1H
901[1;24r[23;2H nf2.device_name = DEFAULT_IFACE;[24;63H[K[24;63H153,6[9C26%[23;6H[?12l[?25h[?25l[1;23r[23;1H
902[1;24r[24;63H[K[24;63H154,0-1[7C26%[23;1H[?12l[?25h[?25l[1;23r[23;1H
903[1;24r[23;2H [34m// Process the command line arguments[m[24;63H[K[24;63H155,6[9C26%[23;6H[?12l[?25h[?25l[1;23r[23;1H
904[1;24r[23;2H processArgs(argc, argv);[24;63H[K[24;63H156,6[9C27%[23;6H[?12l[?25h[?25l[1;23r[23;1H
905[1;24r[24;63H[K[24;63H157,0-1[7C27%[23;1H[?12l[?25h[?25l[1;23r[23;1H
906[1;24r[23;2H [34m// Check that the interface is valid and open it if possible[m[24;63H[K[24;63H158,6[9C27%[23;6H[?12l[?25h[?25l[1;23r[23;1H
907[1;24r[23;2H [38;5;130mif[m [106m([mcheck_iface(&nf2)[106m)[m[24;63H[K[24;63H159,6[9C27%[23;6H[?12l[?25h[?25l[1;23r[23;1H
908[1;24r[22;6H([17C)
909 {[24;63H[K[24;63H160,3[9C28%[23;3H[?12l[?25h[?25l[1;23r[23;1H
910[1;24r[23;4H exit([31m1[m);[24;63H[K[24;63H161,6[9C28%[23;6H[?12l[?25h[?25l[1;23r[23;1H
911[1;24r[21;3H[106m{[m
912
913 [106m}[m[24;63H[K[24;63H162,3[9C28%[23;3H[?12l[?25h[?25l[1;23r[23;1H
914[1;24r[20;3H{
915
916 }
917 [38;5;130mif[m [106m([mopenDescriptor(&nf2)[106m)[m[24;63H[K[24;63H163,6[9C28%[23;6H[?12l[?25h[?25l[1;23r[23;1H
918[1;24r[22;6H([20C)
919 {[24;63H[K[24;63H164,3[9C28%[23;3H[?12l[?25h[?25l[1;23r[23;1H
920[1;24r[23;4H exit([31m1[m);[24;63H[K[24;63H165,6[9C29%[23;6H[?12l[?25h[?25l[1;23r[23;1H
921[1;24r[21;3H[106m{[m
922
923 [106m}[m[24;63H[K[24;63H166,3[9C29%[23;3H[?12l[?25h[?25l[1;23r[23;1H
924[1;24r[20;3H{
925
926 }[24;63H[K[24;63H167,0-1[7C29%[23;1H[?12l[?25h[?25l[1;23r[23;1H
927[1;24r[23;2H [34m// Verify that the correct device is downloaded[m[24;63H[K[24;63H168,6[9C29%[23;6H[?12l[?25h[?25l[1;23r[23;1H
928[1;24r[23;2H [38;5;130mif[m (!checkVirtexBitfile(&nf2, DEVICE_PROJ_DIR,[24;63H[K[24;63H169,6[9C29%[23;6H[?12l[?25h[?25l[1;23r[23;1H
929[1;24r[23;24H DEVICE_MAJOR, DEVICE_MINOR, VERSION_ANY,[24;63H[K[24;63H170,1-8[7C30%[23;8H[?12l[?25h[?25l[1;23r[23;1H
930[1;24r[23;24H DEVICE_MAJOR, DEVICE_MINOR, VERSION_ANY)) {[24;63H[K[24;63H171,1-8[7C30%[23;8H[?12l[?25h[?25l[1;23r[23;1H
931[1;24r[23;4H fprintf([31mstderr[m, [31m"[m[35m%s\n[m[31m"[m, getVirtexBitfileErr());[24;63H[K[24;63H172,6[9C30%[23;6H[?12l[?25h[?25l[1;23r[23;1H
932[1;24r[23;4H exit([31m1[m);[24;63H[K[24;63H173,6[9C30%[23;6H[?12l[?25h[?25l[1;23r[23;1H
933[1;24r[20;67H[106m{[m[23;2H [106m}[m[24;63H[K[24;63H174,3[9C30%[23;3H[?12l[?25h[?25l[1;23r[23;1H
934[1;24r[19;67H{[22;3H}
935 [38;5;130melse[m {[24;63H[K[24;63H175,6[9C31%[23;6H[?12l[?25h[?25l[1;23r[23;1H
936[1;24r[23;4H printf(getDeviceInfoStr(&nf2));[24;63H[K[24;63H176,6[9C31%[23;6H[?12l[?25h[?25l[1;23r[23;1H
937[1;24r[21;8H[106m{[m
938
939 [106m}[m[24;63H[K[24;63H177,3[9C31%[23;3H[?12l[?25h[?25l[1;23r[23;1H
940[1;24r[20;8H{
941
942 }[24;63H[K[24;63H178,0-1[7C31%[23;1H[?12l[?25h[?25l[1;23r[23;1H
943[1;24r[23;2H [34m// Add a signal handler[m[24;63H[K[24;63H179,6[9C31%[23;6H[?12l[?25h[?25l[1;23r[23;1H
944[1;24r[23;2H signal([31mSIGINT[m, sigint_handler);[24;63H[K[24;63H180,6[9C32%[23;6H[?12l[?25h[?25l[1;23r[23;1H
945[1;24r[24;63H[K[24;63H181,0-1[7C32%[23;1H[?12l[?25h[?25l[1;23r[23;1H
946[1;24r[23;2H [34m// Measure the clock rates[m[24;63H[K[24;63H182,6[9C32%[23;6H[?12l[?25h[?25l[1;23r[23;1H
947[1;24r[23;2H measureClocks();[24;63H[K[24;63H183,6[9C32%[23;6H[?12l[?25h[?25l[1;23r[23;1H
948[1;24r[24;63H[K[24;63H184,0-1[7C32%[23;1H[?12l[?25h[?25l[1;23r[23;1H
949[1;24r[23;2H [34m// Run the appropriate test[m[24;63H[K[24;63H185,6[9C33%[23;6H[?12l[?25h[?25l[1;23r[23;1H
950[1;24r[23;2H [38;5;130mif[m [106m([mcontinuous[106m)[m {[24;63H[K[24;63H186,6[9C33%[23;6H[?12l[?25h[?25l[1;23r[23;1H
951[1;24r[22;6H([10C)
952 mainContinuous();[24;63H[K[24;63H187,6[9C33%[23;6H[?12l[?25h[?25l[1;23r[23;1H
953[1;24r[21;19H[106m{[m
954
955 [106m}[m[24;63H[K[24;63H188,3[9C33%[23;3H[?12l[?25h[?25l[1;23r[23;1H
956[1;24r[20;19H{
957
958 }
959 [38;5;130melse[m [38;5;130mif[m (shortrun) {[24;63H[K[24;63H189,6[9C33%[23;6H[?12l[?25h[?25l[1;23r[23;1H
960[1;24r[23;4H mainOneShot();[24;63H[K[24;63H190,6[9C34%[23;6H[?12l[?25h[?25l[1;23r[23;1H
961[1;24r[21;22H[106m{[m
962
963 [106m}[m[24;63H[K[24;63H191,3[9C34%[23;3H[?12l[?25h[?25l[1;23r[23;1H
964[1;24r[20;22H{
965
966 }[24;63H[K[24;63H192,0-1[7C34%[23;1H[?12l[?25h[?25l[1;23r[23;1H
967[1;24r[23;2H [34m// Close the network descriptor[m[24;63H[K[24;63H193,6[9C34%[23;6H[?12l[?25h[?25l[1;23r[23;1H
968[1;24r[23;2H closeDescriptor(&nf2);[24;63H[K[24;63H194,6[9C34%[23;6H[?12l[?25h[?25l[1;23r[23;1H
969[1;24r[24;63H[K[24;63H195,0-1[7C35%[23;1H[?12l[?25h[?25l[1;23r[23;1H
970[1;24r[23;2H [38;5;130mreturn[m [31m0[m;[24;63H[K[24;63H196,6[9C35%[23;6H[?12l[?25h[?25l[1;23r[23;1H
971[1;24r[23;1H}[24;63H[K[24;63H197,1[9C35%[23;1H[?12l[?25h[?25l[1;23r[23;1H
972[1;24r[24;63H[K[24;63H198,0-1[7C35%[23;1H[?12l[?25h[?25l[1;23r[23;1H
973[1;24r[23;1H[34m/*[m[24;63H[K[24;63H199,2[9C35%[23;2H[?12l[?25h[?25l[1;23r[23;1H
974[1;24r[23;1H[34m * "Main" function for continuous mode[m[24;63H[K[24;63H200,6[9C36%[23;6H[?12l[?25h[?25l[1;23r[23;1H
975[1;24r[23;1H[34m */[m[24;63H[K[24;63H201,3[9C36%[23;3H[?12l[?25h[?25l[1;23r[23;1H
976[1;24r[23;1H[32mvoid[m mainContinuous([32mvoid[m)[24;63H[K[24;63H202,6[9C36%[23;6H[?12l[?25h[?25l[1;23r[23;1H
977[1;24r[23;1H{[24;63H[K[24;63H203,1[9C36%[23;1H[?12l[?25h[?25l[1;23r[23;1H
978[1;24r[23;2H [34m// Set up curses[m[24;63H[K[24;63H204,6[9C37%[23;6H[?12l[?25h[?25l[1;23r[23;1H
979[1;24r[23;2H w = initscr();[24;63H[K[24;63H205,6[9C37%[23;6H[?12l[?25h[?25l[1;23r[23;1H
980[1;24r[23;2H cbreak();[24;63H[K[24;63H206,6[9C37%[23;6H[?12l[?25h[?25l[24;63H[K[24;1H:[?12l[?25h1[?25l[?12l[?25h
981[?25l[27m[m[H[2J[1;1H[34m/* ****************************************************************************
982 * vim:set shiftwidth=2 softtabstop=2 expandtab:
983 * $Id: selftest.c 6010 2010-03-14 08:24:50Z grg $
984 *
985 * Module: selftest.c
986 * Project: NetFPGA 2.1
987 * Description: Interface with the self-test modules on the NetFPGA
988 * to help diagnose problems.
989 *
990 * Change history:
991 *
992 */[m
993
994[35m#include [m[31m<stdio.h>[m
995[35m#include [m[31m<stdlib.h>[m
996[35m#include [m[31m<unistd.h>[m
997
998[35m#include [m[31m<sys/types.h>[m
999[35m#include [m[31m<sys/stat.h>[m
1000[35m#include [m[31m<sys/socket.h>[m
1001[35m#include [m[31m<sys/time.h>[m
1002
1003[35m#include [m[31m<net/if.h>[m[24;63H1,1[11CTop[1;1H[?12l[?25h[?25l[24;1H/PHY[24;63H[K[24;1H[27m[m[H[2J[1;4H regStopContinuous,
1004 regGetResult,
1005 },
1006 {
1007 [31m"MDIO interface"[m,
1008 mdioResetContinuous,
1009 mdioShowStatusContinuous,
1010 mdioStopContinuous,
1011 mdioGetResult,
1012 },
1013 {
1014 [31m"PHY interface"[m,
1015 phyResetContinuous,
1016 phyShowStatusContinuous,
1017 phyStopContinuous,
1018 phyGetResult,
1019 },
1020 {
1021 [31m"DRAM controller"[m,
1022 dramResetContinuous,
1023 dramShowStatusContinuous,
1024 dramStopContinuous,
1025 dramGetResult,[24;63H110,6[9C20%[12;6H[?12l[?25h[?25l[24;65H1[13;6H[?12l[?25h[?25l[24;63H[K[24;1H:[?12l[?25hq[?25l[?12l[?25h
1026[?25l[24;1H[K[24;1H[?1l>[?12l[?25h[?1049l]0;root@node1-1: ~/netfpga/projects/selftest/swroot@node1-1:~/netfpga/projects/selftest/sw# vi selftest.cgrep PHY * | morels[Kvi selftest_phy.c
1027[?1049h[?1h=[1;24r[?12;25h[?12l[?25h[27m[m[H[2J[?25l[24;1H"selftest_phy.c" 157L, 3955C[>c[1;1H[34m/* ****************************************************************************
1028 * vim:set shiftwidth=2 softtabstop=2 expandtab:
1029 * $Id: selftest_phy.c 5971 2010-03-06 06:44:56Z grg $
1030 *
1031 * Module: selftest_phy.c
1032 * Project: NetFPGA selftest
1033 * Description: SATA selftest module
1034 *
1035 * Change history:
1036 *
1037 */[m
1038
1039[35m#include [m[31m"../lib/C/reg_defines_selftest.h"[m
1040[35m#include [m[31m"selftest.h"[m
1041[35m#include [m[31m"selftest_phy.h"[m
1042[35m#include [m[31m<curses.h>[m
1043[35m#include [m[31m<time.h>[m
1044
1045[35m#define NUM_PORTS [m[31m4[m
1046
1047[32mstatic[m [32mint[m prev_good_pkts[NUM_PORTS];
1048[32mstatic[m [32mint[m prev_bad_pkts[NUM_PORTS];[24;63H1,1[11CTop[1;1H[?12l[?25hP+q436f\P+q6b75\P+q6b64\P+q6b72\P+q6b6c\P+q2332\P+q2334\P+q2569\P+q2a37\P+q6b31\P+q6b32\[27m[m[H[2J[?25l[1;1H[34m/* ****************************************************************************
1049 * vim:set shiftwidth=2 softtabstop=2 expandtab:
1050 * $Id: selftest_phy.c 5971 2010-03-06 06:44:56Z grg $
1051 *
1052 * Module: selftest_phy.c
1053 * Project: NetFPGA selftest
1054 * Description: SATA selftest module
1055 *
1056 * Change history:
1057 *
1058 */[m
1059
1060[35m#include [m[31m"../lib/C/reg_defines_selftest.h"[m
1061[35m#include [m[31m"selftest.h"[m
1062[35m#include [m[31m"selftest_phy.h"[m
1063[35m#include [m[31m<curses.h>[m
1064[35m#include [m[31m<time.h>[m
1065
1066[35m#define NUM_PORTS [m[31m4[m
1067
1068[32mstatic[m [32mint[m prev_good_pkts[NUM_PORTS];
1069[32mstatic[m [32mint[m prev_bad_pkts[NUM_PORTS];[24;63H1,1[11CTop
1070"selftest_phy.c" 157L, 3955C[24;63H[K[24;63H1,1[11CTop[1;1H[?12l[?25hP+q6b33\[?25l[?12l[?25hP+q6b34\P+q6b35\P+q6b36\P+q6b37\P+q6b38\P+q6b39\P+q6b3b\P+q4631\P+q4632\P+q2531\P+q2638\P+q6b62\P+q6b49\P+q6b44\P+q6b68\P+q4037\P+q6b50\P+q6b4e\P+q4b31\P+q4b33\P+q4b34\P+q4b35\P+q6b42\[?25l[27m[m[H[2J[1;1H[32mstatic[m [32mint[m prev_bad_pkts[NUM_PORTS];
1071
1072[34m/*
1073 * Reset the interface and configure it for continuous operation
1074 */[m
1075[32mvoid[m phyResetContinuous([32mvoid[m) {
1076 [32mint[m i;
1077
1078 [38;5;130mfor[m (i = [31m0[m; i < NUM_PORTS; i++) {
1079 prev_good_pkts[i] = [31m0[m;
1080 prev_bad_pkts[i] = [31m0[m;
1081 }
1082
1083 [34m// Stop the test (and wait for the test to stop)[m
1084 writeReg(&nf2, PHY_TEST_CTRL_REG, [31m0x0[m);
1085 sleep([31m1[m);
1086
1087 writeReg(&nf2, PHY_TEST_PATTERN_REG, PHY_TEST_PATTERN_ENABLE_MASK);
1088
1089 [34m// Start the test[m
1090 writeReg(&nf2, PHY_TEST_CTRL_REG, PHY_TEST_CTRL_REPEAT);
1091} [34m// phyResetContinuous[m[24;63H22,1[10C15%[1;1H[?12l[?25h[?25l[24;64H3,0-1[2;1H[?12l[?25h[?25l[24;64H4,1 [3;1H[?12l[?25h[?25l[24;64H5[4;1H[?12l[?25h[?25l[24;64H6[5;1H[?12l[?25h[?25l[24;64H7[6;1H[?12l[?25h[?25l[24;64H8[7;1H[?12l[?25h[?25l[24;64H9,0-1[8;1H[?12l[?25h[?25l[24;63H30,1 [9;1H[?12l[?25h[?25l[24;64H1[10;1H[?12l[?25h[?25l[24;64H2[11;1H[?12l[?25h[?25l[24;64H3[12;1H[?12l[?25h[?25l[24;64H4,0-1[13;1H[?12l[?25h[?25l[24;64H5,1 [14;1H[?12l[?25h[?25l[24;64H6[15;1H[?12l[?25h[?25l[24;64H7[16;1H[?12l[?25h[?25l[24;64H8,0-1[17;1H[?12l[?25h[?25l[24;64H9,1 [18;1H[?12l[?25h[?25l[24;63H40,0-1[19;1H[?12l[?25h[?25l[24;64H1,1 [20;1H[?12l[?25h[?25l[24;64H2[21;1H[?12l[?25h[?25l[6;31H[106m{[22;1H}[m[24;64H3[22;1H[?12l[?25h[?25l[6;31H{[22;1H}[24;64H4,0-1[23;1H[?12l[?25h[?25l[1;23r[23;1H
1092[1;24r[23;1H[34m/*[m[24;63H[K[24;63H45,1[10C16%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1093[1;24r[23;1H[34m * Show the status of the SATA test when running in continuous mode[m[24;63H[K[24;63H46,1[10C17%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1094[1;24r[23;1H[34m *[m[24;63H[K[24;63H47,1[10C17%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1095[1;24r[23;1H[34m * Return -- boolean indicating success[m[24;63H[K[24;63H48,1[10C18%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1096[1;24r[23;1H[34m */[m[24;63H[K[24;63H49,1[10C19%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1097[1;24r[23;1H[32mint[m phyShowStatusContinuous([32mvoid[m) {[24;63H[K[24;63H50,1[10C20%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1098[1;24r[23;2H [32munsigned[m [32mint[m val;[24;63H[K[24;63H51,1[10C20%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1099[1;24r[23;2H [32munsigned[m [32mint[m port_status;[24;63H[K[24;63H52,1[10C21%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1100[1;24r[23;2H [32munsigned[m [32mint[m good_pkts;[24;63H[K[24;63H53,1[10C22%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1101[1;24r[23;2H [32munsigned[m [32mint[m bad_pkts;[24;63H[K[24;63H54,1[10C23%[23;1H[?12l[?25h[?25l[24;64H3[22;1H[?12l[?25h[?25l[24;64H2[21;1H[?12l[?25h[?25l[24;64H1[20;1H[?12l[?25h[?25l[24;64H0[19;1H[?12l[?25h[?25l[24;63H49[18;1H[?12l[?25h[?25l[24;64H8[17;1H[?12l[?25h[?25l[24;64H7[16;1H[?12l[?25h[?25l[24;64H6[15;1H[?12l[?25h[?25l[24;64H5[14;1H[?12l[?25h[?25l[24;64H4,0-1[13;1H[?12l[?25h[?25l[24;64H3,1 [12;1H[?12l[?25h[?25l[24;64H2[11;1H[?12l[?25h[?25l[24;64H1[10;1H[?12l[?25h[?25l[24;64H0,0-1[9;1H[?12l[?25h[?25l[24;63H39,1 [8;1H[?12l[?25h[?25l[24;64H8,0-1[7;1H[?12l[?25h[?25l[24;64H7,1 [6;1H[?12l[?25h[?25l[24;64H6[5;1H[?12l[?25h[?25l[24;64H5[4;1H[?12l[?25h[?25l[24;64H4,0-1[3;1H[?12l[?25h[?25l[24;64H3,1 [2;1H[?12l[?25h[?25l[24;64H2[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;4H prev_good_pkts[i] = [31m0[m;[24;63H[K[24;63H31,1[10C22%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [38;5;130mfor[m (i = [31m0[m; i < NUM_PORTS; i++) {[24;63H[K[24;63H30,1[10C21%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H29,0-1[8C20%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32mint[m i;[24;63H[K[24;63H28,1[10C20%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[32mvoid[m phyResetContinuous([32mvoid[m) {[24;63H[K[24;63H27,1[10C19%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m */[m[24;63H[K[24;63H26,1[10C18%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m * Reset the interface and configure it for continuous operation[m[24;63H[K[24;63H25,1[10C17%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m/*[m[24;63H[K[24;63H24,1[10C17%[1;1H[?12l[?25h[?25l[24;64H5[2;1H[?12l[?25h[?25l[24;64H6[3;1H[?12l[?25h[?25l[24;64H7[4;1H[?12l[?25h[?25l[24;64H8[5;1H[?12l[?25h[?25l[24;64H9,0-1[6;1H[?12l[?25h[?25l[24;63H30,1 [7;1H[?12l[?25h[?25l[24;64H1[8;1H[?12l[?25h[?25l[24;64H2[9;1H[?12l[?25h[?25l[24;64H3[10;1H[?12l[?25h[?25l[24;64H2[9;1H[?12l[?25h[?25l[24;64H1[8;1H[?12l[?25h[?25l[24;64H0[7;1H[?12l[?25h[?25l[24;63H29,0-1[6;1H[?12l[?25h[?25l[24;64H8,1 [5;1H[?12l[?25h[?25l[24;64H7[4;1H[?12l[?25h[?25l[24;64H6[3;1H[?12l[?25h[?25l[24;64H5[2;1H[?12l[?25h[?25l[24;64H4[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H23,0-1[8C16%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[32mstatic[m [32mint[m prev_bad_pkts[NUM_PORTS];[24;63H[K[24;63H22,1[10C15%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[32mstatic[m [32mint[m prev_good_pkts[NUM_PORTS];[24;63H[K[24;63H21,1[10C14%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H20,0-1[8C14%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[35m#define NUM_PORTS [m[31m4[m[24;63H[K[24;63H19,1[10C13%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H18,0-1[8C12%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[35m#include [m[31m<time.h>[m[24;63H[K[24;63H17,1[10C11%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[35m#include [m[31m<curses.h>[m[24;63H[K[24;63H16,1[10C11%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[35m#include [m[31m"selftest_phy.h"[m[24;63H[K[24;63H15,1[10C10%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[35m#include [m[31m"selftest.h"[m[24;63H[K[24;63H14,1[11C9%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[35m#include [m[31m"../lib/C/reg_defines_selftest.h"[m[24;63H[K[24;63H13,1[11C8%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H12,0-1[9C8%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m */[m[24;63H[K[24;63H11,1[11C7%[1;1H[?12l[?25h[?25l[24;64H2,0-1[2;1H[?12l[?25h[?25l[24;64H3,1 [3;1H[?12l[?25h[?25l[24;64H4[4;1H[?12l[?25h[?25l[24;64H5[5;1H[?12l[?25h[?25l[24;64H6[6;1H[?12l[?25h[?25l[24;64H7[7;1H[?12l[?25h[?25l[24;64H8,0-1[8;1H[?12l[?25h[?25l[24;64H9,1 [9;1H[?12l[?25h[?25l[24;63H20,0-1[10;1H[?12l[?25h[?25l[24;64H1,1 [11;1H[?12l[?25h[?25l[24;64H2[12;1H[?12l[?25h[?25l[24;64H3,0-1[13;1H[?12l[?25h[?25l[24;64H4,1 [14;1H[?12l[?25h[?25l[24;64H5[15;1H[?12l[?25h[?25l[24;64H6[16;1H[?12l[?25h[?25l[24;64H7[17;1H[?12l[?25h[?25l[24;64H8[18;1H[?12l[?25h[?25l[24;64H9,0-1[19;1H[?12l[?25h[?25l[24;63H30,1 [20;1H[?12l[?25h[?25l[24;64H1[21;1H[?12l[?25h[?25l[24;64H2[22;1H[?12l[?25h[?25l[24;64H3[23;1H[?12l[?25h[?25l[1;23r[23;1H
1102[1;24r[24;63H[K[24;63H34,0-1[9C8%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1103[1;24r[23;2H [34m// Stop the test (and wait for the test to stop)[m[24;63H[K[24;63H35,1[11C8%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1104[1;24r[23;2H writeReg(&nf2, PHY_TEST_CTRL_REG, [31m0x0[m);[24;63H[K[24;63H36,1[11C9%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1105[1;24r[23;2H sleep([31m1[m);[24;63H[K[24;63H37,1[10C10%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1106[1;24r[24;63H[K[24;63H38,0-1[8C11%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1107[1;24r[23;2H writeReg(&nf2, PHY_TEST_PATTERN_REG, PHY_TEST_PATTERN_ENABLE_MASK);[24;63H[K[24;63H39,1[10C11%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1108[1;24r[24;63H[K[24;63H40,0-1[8C12%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1109[1;24r[23;2H [34m// Start the test[m[24;63H[K[24;63H41,1[10C13%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1110[1;24r[23;2H writeReg(&nf2, PHY_TEST_CTRL_REG, PHY_TEST_CTRL_REPEAT);[24;63H[K[24;63H42,1[10C14%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1111[1;24r[7;31H[106m{[23;1H}[m [34m// phyResetContinuous[m[24;63H[K[24;63H43,1[10C14%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1112[1;24r[6;31H{[22;1H}[24;63H[K[24;63H44,0-1[8C15%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1113[1;24r[23;1H[34m/*[m[24;63H[K[24;63H45,1[10C16%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1114[1;24r[23;1H[34m * Show the status of the SATA test when running in continuous mode[m[24;63H[K[24;63H46,1[10C17%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1115[1;24r[23;1H[34m *[m[24;63H[K[24;63H47,1[10C17%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1116[1;24r[23;1H[34m * Return -- boolean indicating success[m[24;63H[K[24;63H48,1[10C18%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1117[1;24r[23;1H[34m */[m[24;63H[K[24;63H49,1[10C19%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1118[1;24r[23;1H[32mint[m phyShowStatusContinuous([32mvoid[m) {[24;63H[K[24;63H50,1[10C20%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1119[1;24r[23;2H [32munsigned[m [32mint[m val;[24;63H[K[24;63H51,1[10C20%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1120[1;24r[23;2H [32munsigned[m [32mint[m port_status;[24;63H[K[24;63H52,1[10C21%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1121[1;24r[23;2H [32munsigned[m [32mint[m good_pkts;[24;63H[K[24;63H53,1[10C22%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1122[1;24r[23;2H [32munsigned[m [32mint[m bad_pkts;[24;63H[K[24;63H54,1[10C23%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1123[1;24r[24;63H[K[24;63H55,0-1[8C23%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1124[1;24r[23;2H [32mint[m i;[24;63H[K[24;63H56,1[10C24%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1125[1;24r[24;63H[K[24;63H57,0-1[8C25%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1126[1;24r[23;2H [32mint[m x, y;[24;63H[K[24;63H58,1[10C26%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1127[1;24r[24;63H[K[24;63H59,0-1[8C26%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1128[1;24r[23;2H [32mint[m good = [31m1[m;[24;63H[K[24;63H60,1[10C27%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1129[1;24r[24;63H[K[24;63H61,0-1[8C28%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1130[1;24r[23;2H [34m// Store the current screen position[m[24;63H[K[24;63H62,1[10C29%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1131[1;24r[23;2H getyx(stdscr, y, x);[24;63H[K[24;63H63,1[10C29%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1132[1;24r[24;63H[K[24;63H64,0-1[8C30%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1133[1;24r[23;2H [34m// Move down a line[m[24;63H[K[24;63H65,1[10C31%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1134[1;24r[23;2H move(y + [31m1[m, x);[24;63H[K[24;63H66,1[10C32%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1135[1;24r[24;63H[K[24;63H67,0-1[8C32%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1136[1;24r[23;2H [34m// Read the individual port registers[m[24;63H[K[24;63H68,1[10C33%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1137[1;24r[23;2H [38;5;130mfor[m (i = [31m0[m; i < NUM_PORTS; i++) {[24;63H[K[24;63H69,1[10C34%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1138[1;24r[23;4H printw([31m" Port [m[35m%d[m[31m:"[m, i + [31m1[m);[24;63H[K[24;63H70,1[10C35%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1139[1;24r[24;63H[K[24;63H71,0-1[8C35%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1140[1;24r[23;4H [34m// Start with the status register[m[24;63H[K[24;63H72,1[10C36%[23;1H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H readReg(&nf2, PHY_TEST_PHY_0_RX_STATUS_REG + i * PHY_TEST_PHY_GROUP_INST_OFFF[23;1HSET, &port_status);[24;63H[K[24;63H73,1[10C37%[22;1H[?12l[?25h[?25l[1;23r[23;1H
1141[1;24r[23;4H [38;5;130mif[m (port_status & [31m0x100[m) {[24;63H[K[24;63H74,1[10C38%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1142[1;24r[23;6H printw([31m" link w/ [m[35m%d[m[31m"[m, (port_status & [31m0xf0000[m) >> [31m16[m);[24;63H[K[24;63H75,1[10C39%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1143[1;24r[23;4H }[24;63H[K[24;63H76,1[10C40%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1144[1;24r[23;4H [38;5;130melse[m {[24;63H[K[24;63H77,1[10C40%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1145[1;24r[23;6H printw([31m" no link"[m);[24;63H[K[24;63H78,1[10C41%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1146[1;24r[23;6H good = [31m0[m;[24;63H[K[24;63H79,1[10C42%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1147[1;24r[23;4H }[24;63H[K[24;63H80,1[10C42%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1148[1;24r[24;63H[K[24;63H81,0-1[8C43%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1149[1;24r[23;4H [34m// Read the number of good/bad packets[m[24;63H[K[24;63H82,1[10C44%[23;1H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H readReg(&nf2, PHY_TEST_PHY_0_RX_GOOD_PKT_CNT_REG + i * PHY_TEST_PHY_GROUP_INN[23;1HST_OFFSET, &good_pkts);[24;63H[K[24;63H83,1[10C45%[22;1H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H readReg(&nf2, PHY_TEST_PHY_0_RX_ERR_PKT_CNT_REG + i * PHY_TEST_PHY_GROUP_INN[23;1HST_OFFSET, &bad_pkts);[24;63H[K[24;63H84,1[10C46%[22;1H[?12l[?25h[?25l[1;23r[23;1H
1150[1;24r[23;4H printw([31m" Good: [m[35m%d[m[31m Bad: [m[35m%d[m[31m"[m, good_pkts, bad_pkts);[24;63H[K[24;63H85,1[10C47%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1151[1;24r[24;63H[K[24;63H86,0-1[8C48%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1152[1;24r[23;4H printw([31m"[m[35m\n[m[31m"[m);[24;63H[K[24;63H87,1[10C48%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1153[1;24r[24;63H[K[24;63H88,0-1[8C49%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1154[1;24r[23;4H [34m// Verify if we should reset the counters[m[24;63H[K[24;63H89,1[10C50%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1155[1;24r[23;4H [34m/*if ((port_status & 0x1100) == 0x1100) {[m[24;63H[K[24;63H90,1[10C51%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1156[1;24r[23;1H[34m // Only reset if the number of good packets has incremented but the bad[m[24;63H[K[24;63H91,1[10C51%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1157[1;24r[23;1H[34m // packets have remained the same[m[24;63H[K[24;63H92,1[10C52%[23;1H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;1H[34m if (bad_pkts == prev_bad_pkts[i] && good_pkts != prev_good_pkts[i]) {
1158 writeReg(&nf2, PHY_TEST_PHY_0_RX_CTRL_REG + i * PHY_TEST_PHY_GROUP_INST_[m[23;1H[94m@ [m[24;63H[K[24;63H93,1[10C53%[22;1H[?12l[?25h[?25l[1;23r[23;1H
1159[1;24r[22;1H[34m writeReg(&nf2, PHY_TEST_PHY_0_RX_CTRL_REG + i * PHY_TEST_PHY_GROUP_INST__[23;1HOFFSET, 0x3);[m[24;63H[K[24;63H94,1[10C54%[22;1H[?12l[?25h[?25l[1;23r[23;1H
1160[1;24r[23;1H[34m }[m[24;63H[K[24;63H95,1[10C54%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1161[1;24r[24;63H[K[24;63H96,0-1[8C55%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1162[1;24r[23;1H[34m // Update the counters[m[24;63H[K[24;63H97,1[10C56%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1163[1;24r[23;1H[34m prev_bad_pkts[i] = bad_pkts;[m[24;63H[K[24;63H98,1[10C56%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1164[1;24r[23;1H[34m prev_good_pkts[i] = good_pkts;[m[24;63H[K[24;63H99,1[10C57%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1165[1;24r[23;1H[34m }*/[m[24;63H[K[24;63H100,1[9C58%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1166[1;24r[24;63H[K[24;63H101,0-1[7C59%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1167[1;24r[23;4H [34m// Update the good flag[m[24;63H[K[24;63H102,1[9C59%[23;1H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H [38;5;130mif[m (bad_pkts != [31m0[m)[23;6H good = [31m0[m;[24;63H[K[24;63H103,1[9C61%[22;1H[?12l[?25h[?25l[24;65H4[23;1H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;2H }[24;63H[K[24;63H105,1[9C62%[22;1H[?12l[?25h[?25l[24;65H6,0-1[23;1H[?12l[?25h[?25l[1;23r[23;1H
1168[1;24r[23;2H [34m// Print overall success/failure[m[24;63H[K[24;63H107,1[9C62%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1169[1;24r[23;2H move(y, x);[24;63H[K[24;63H108,1[9C63%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1170[1;24r[23;2H printw([31m"PHY test: [m[35m%s[m[31m"[m, good ? [31m"pass"[m : [31m"fail"[m);[24;63H[K[24;63H109,1[9C64%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1171[1;24r[23;2H move(y + [31m1[m + NUM_PORTS, x);[24;63H[K[24;63H110,1[9C65%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1172[1;24r[24;63H[K[24;63H111,0-1[7C65%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1173[1;24r[23;2H [38;5;130mreturn[m good;[24;63H[K[24;63H112,1[9C66%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1174[1;24r[23;1H} [34m// phyShowStatusContinuous[m[24;63H[K[24;63H113,1[9C67%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1175[1;24r[24;63H[K[24;63H114,0-1[7C68%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1176[1;24r[23;1H[34m/*[m[24;63H[K[24;63H115,1[9C68%[23;1H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;1H[34m * Stop the interface
1177 */[m[24;63H[K[24;63H116,1[9C70%[22;1H[?12l[?25h[?25l[24;65H7[23;1H[?12l[?25h[?25l[1;23r[23;1H
1178[1;24r[23;1H[32mvoid[m phyStopContinuous([32mvoid[m) {[24;63H[K[24;63H118,1[9C70%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1179[1;24r[23;2H [34m// Stop the test (and wait for the test to stop)[m[24;63H[K[24;63H119,1[9C71%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1180[1;24r[23;2H writeReg(&nf2, PHY_TEST_CTRL_REG, [31m0x00000000[m);[24;63H[K[24;63H120,1[9C72%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1181[1;24r[20;30H[106m{
1182
1183
1184}[m [34m// phyStopContinuous[m[24;63H[K[24;63H121,1[9C73%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1185[1;24r[19;30H{
1186
1187
1188}[24;63H[K[24;63H122,0-1[7C73%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1189[1;24r[23;1H[34m/*[m[24;63H[K[24;63H123,1[9C74%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1190[1;24r[23;1H[34m * Get the result of the test[m[24;63H[K[24;63H124,1[9C75%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1191[1;24r[23;1H[34m *[m[24;63H[K[24;63H125,1[9C76%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1192[1;24r[23;1H[34m * Return -- boolean indicating success[m[24;63H[K[24;63H126,1[9C76%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1193[1;24r[23;1H[34m */[m[24;63H[K[24;63H127,1[9C77%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1194[1;24r[23;1H[32mint[m phyGetResult([32mvoid[m) {[24;63H[K[24;63H128,1[9C78%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1195[1;24r[23;2H [32munsigned[m [32mint[m val;[24;63H[K[24;63H129,1[9C79%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1196[1;24r[23;2H [32munsigned[m [32mint[m port_status;[24;63H[K[24;63H130,1[9C79%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1197[1;24r[23;2H [32munsigned[m [32mint[m good_pkts;[24;63H[K[24;63H131,1[9C80%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1198[1;24r[23;2H [32munsigned[m [32mint[m bad_pkts;[24;63H[K[24;63H132,1[9C81%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1199[1;24r[24;63H[K[24;63H133,0-1[7C82%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1200[1;24r[23;2H [32mint[m i;[24;63H[K[24;63H134,1[9C82%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1201[1;24r[24;63H[K[24;63H135,0-1[7C83%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1202[1;24r[23;2H [32mint[m good = [31m1[m;[24;63H[K[24;63H136,1[9C84%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1203[1;24r[24;63H[K[24;63H137,0-1[7C85%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1204[1;24r[23;2H [34m// Read the individual port registers[m[24;63H[K[24;63H138,1[9C85%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1205[1;24r[23;2H [38;5;130mfor[m (i = [31m0[m; i < NUM_PORTS; i++) {[24;63H[K[24;63H139,1[9C86%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1206[1;24r[23;4H [34m// Start with the status register[m[24;63H[K[24;63H140,1[9C87%[23;1H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H readReg(&nf2, PHY_TEST_PHY_0_RX_STATUS_REG + i * PHY_TEST_PHY_GROUP_INST_OFFF[23;1HSET, &port_status);[24;63H[K[24;63H141,1[9C88%[22;1H[?12l[?25h[?25l[1;23r[23;1H
1207[1;24r[23;4H [38;5;130mif[m ((port_status & [31m0x100[m) == [31m0[m) {[24;63H[K[24;63H142,1[9C88%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1208[1;24r[23;6H good = [31m0[m;[24;63H[K[24;63H143,1[9C89%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1209[1;24r[23;4H }[24;63H[K[24;63H144,1[9C90%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1210[1;24r[24;63H[K[24;63H145,0-1[7C91%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1211[1;24r[23;4H [34m// Read the number of good/bad packets[m[24;63H[K[24;63H146,1[9C91%[23;1H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H readReg(&nf2, PHY_TEST_PHY_0_RX_GOOD_PKT_CNT_REG + i * PHY_TEST_PHY_GROUP_INN[23;1HST_OFFSET, &good_pkts);[24;63H[K[24;63H147,1[9C92%[22;1H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H readReg(&nf2, PHY_TEST_PHY_0_RX_ERR_PKT_CNT_REG + i * PHY_TEST_PHY_GROUP_INSS[23;1HT_OFFSET, &bad_pkts);[24;63H[K[24;63H148,1[9C93%[22;1H[?12l[?25h[?25l[1;23r[23;1H
1212[1;24r[24;63H[K[24;63H149,0-1[7C94%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1213[1;24r[23;4H [34m// Update the good flag[m[24;63H[K[24;63H150,1[9C94%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1214[1;24r[23;4H [38;5;130mif[m (bad_pkts != [31m0[m) {[24;63H[K[24;63H151,1[9C95%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1215[1;24r[23;6H good = [31m0[m;[24;63H[K[24;63H152,1[9C96%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1216[1;24r[23;4H }[24;63H[K[24;63H153,1[9C97%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1217[1;24r[23;2H }[24;63H[K[24;63H154,1[9C97%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1218[1;24r[24;63H[K[24;63H155,0-1[7C98%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1219[1;24r[23;2H [38;5;130mreturn[m good;[24;63H[K[24;63H156,1[9C99%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1220[1;24r[23;1H} [34m// phyGetResult[m[24;63H[K[24;63H157,1[9CBot[23;1H[?12l[?25h[?25l[24;65H6[22;1H[?12l[?25h[?25l[24;65H5,0-1[21;1H[?12l[?25h[?25l[24;65H4,1 [20;1H[?12l[?25h[?25l[24;65H3[19;1H[?12l[?25h[?25l[24;65H2[18;1H[?12l[?25h[?25l[24;65H1[17;1H[?12l[?25h[?25l[24;65H0[16;1H[?12l[?25h[?25l[24;64H49,0-1[15;1H[?12l[?25h[?25l[24;65H8,1 [13;1H[?12l[?25h[?25l[24;65H7[11;1H[?12l[?25h[?25l[24;65H6[10;1H[?12l[?25h[?25l[24;65H5,0-1[9;1H[?12l[?25h[?25l[24;65H4,1 [8;1H[?12l[?25h[?25l[24;65H3[7;1H[?12l[?25h[?25l[24;65H2[6;1H[?12l[?25h[?25l[24;65H1[4;1H[?12l[?25h[?25l[24;65H0[3;1H[?12l[?25h[?25l[24;64H39[2;1H[?12l[?25h[?25l[24;65H8[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H137,0-1[7C99%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32mint[m good = [31m1[m;[24;63H[K[24;63H136,1[9C98%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H135,0-1[7C97%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32mint[m i;[24;63H[K[24;63H134,1[9C97%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H133,0-1[7C96%[1;1H[?12l[?25h[?25l[24;63H[K[24;1H:[?12l[?25h1[?25l[?12l[?25h
1221[?25l[27m[m[H[2J[1;1H[34m/* ****************************************************************************
1222 * vim:set shiftwidth=2 softtabstop=2 expandtab:
1223 * $Id: selftest_phy.c 5971 2010-03-06 06:44:56Z grg $
1224 *
1225 * Module: selftest_phy.c
1226 * Project: NetFPGA selftest
1227 * Description: SATA selftest module
1228 *
1229 * Change history:
1230 *
1231 */[m
1232
1233[35m#include [m[31m"../lib/C/reg_defines_selftest.h"[m
1234[35m#include [m[31m"selftest.h"[m
1235[35m#include [m[31m"selftest_phy.h"[m
1236[35m#include [m[31m<curses.h>[m
1237[35m#include [m[31m<time.h>[m
1238
1239[35m#define NUM_PORTS [m[31m4[m
1240
1241[32mstatic[m [32mint[m prev_good_pkts[NUM_PORTS];
1242[32mstatic[m [32mint[m prev_bad_pkts[NUM_PORTS];[24;63H1,1[11CTop[1;1H[?12l[?25h[?25l[24;63H2[2;1H[?12l[?25h[?25l[24;63H3[3;1H[?12l[?25h[?25l[24;63H4[4;1H[?12l[?25h[?25l[24;63H5[5;1H[?12l[?25h[?25l[24;63H6[6;1H[?12l[?25h[?25l[24;63H7[7;1H[?12l[?25h[?25l[24;63H8[8;1H[?12l[?25h[?25l[24;63H9[9;1H[?12l[?25h[?25l[24;63H10,1[10;1H[?12l[?25h[?25l[24;64H1[11;1H[?12l[?25h[?25l[24;64H2,0-1[12;1H[?12l[?25h[?25l[24;64H3,1 [13;1H[?12l[?25h[?25l[24;64H4[14;1H[?12l[?25h[?25l[24;64H5[15;1H[?12l[?25h[?25l[24;64H6[16;1H[?12l[?25h[?25l[24;64H7[17;1H[?12l[?25h[?25l[24;64H8,0-1[18;1H[?12l[?25h[?25l[24;64H9,1 [19;1H[?12l[?25h[?25l[24;63H20,0-1[20;1H[?12l[?25h[?25l[24;64H1,1 [21;1H[?12l[?25h[?25l[1;23r[1;1H[9M[1;24r[15;1H[34m/*
1243 * Reset the interface and configure it for continuous operation
1244 */[m
1245[32mvoid[m phyResetContinuous([32mvoid[m) {
1246 [32mint[m i;
1247
1248 [38;5;130mfor[m (i = [31m0[m; i < NUM_PORTS; i++) {
1249 prev_good_pkts[i] = [31m0[m;
1250 prev_bad_pkts[i] = [31m0[m;[24;63H[K[24;63H32,1[11C6%[23;1H[?12l[?25h[?25l[24;64H1[22;1H[?12l[?25h[?25l[24;64H0[21;1H[?12l[?25h[?25l[24;63H29,0-1[20;1H[?12l[?25h[?25l[24;64H8,1 [19;1H[?12l[?25h[?25l[24;64H7[18;1H[?12l[?25h[?25l[24;64H6[17;1H[?12l[?25h[?25l[24;64H5[16;1H[?12l[?25h[?25l[24;64H4[15;1H[?12l[?25h[?25l[24;64H3,0-1[14;1H[?12l[?25h[?25l[24;64H2,1 [13;1H[?12l[?25h[?25l[24;64H1[12;1H[?12l[?25h[?25l[24;66H8[12;8H[?12l[?25h[?25l[24;66H12[12;12H[?12l[?25h[?25l[14C[106m[[9C][m[24;66H26[12;26H[?12l[?25h[?25l[[9C][24;66H12[12;12H[?12l[?25h[?25l[24;1H/\<prev_good_pkts\>[24;63H[K[24;1H[62C31,5[11C6%[22;5H[?12l[?25h[?25l[24;63H[K[24;1H[27m[m[H[2J[1;4H readReg(&nf2, PHY_TEST_PHY_0_RX_ERR_PKT_CNT_REG + i * PHY_TEST_PHY_GROUP_INN[2;1HST_OFFSET, &bad_pkts);
1251 printw([31m" Good: [m[35m%d[m[31m Bad: [m[35m%d[m[31m"[m, good_pkts, bad_pkts);[5;4H printw([31m"[m[35m\n[m[31m"[m);[7;4H [34m// Verify if we should reset the counters[m
1252 [34m/*if ((port_status & 0x1100) == 0x1100) {
1253 // Only reset if the number of good packets has incremented but the bad
1254 // packets have remained the same
1255 if (bad_pkts == prev_bad_pkts[i] && good_pkts != prev_good_pkts[i]) {
1256 writeReg(&nf2, PHY_TEST_PHY_0_RX_CTRL_REG + i * PHY_TEST_PHY_GROUP_INST__[13;1HOFFSET, 0x3);
1257 }
1258
1259 // Update the counters
1260 prev_bad_pkts[i] = bad_pkts;
1261 prev_good_pkts[i] = good_pkts;
1262 }*/[m[21;4H [34m// Update the good flag[m
1263 [38;5;130mif[m (bad_pkts != [31m0[m)[23;6H good = [31m0[m;[24;63H93,56[9C61%[11;56H[?12l[?25h[?25l[24;1H/\<prev_good_pkts\>[24;63H[K[24;1H[62C99,7[10C61%[18;7H[?12l[?25h[?25l[24;63H[K[24;1H[31msearch hit BOTTOM, continuing at TOP[27m[m[H[2J[1;1H[34m *
1264 */[m
1265
1266[35m#include [m[31m"../lib/C/reg_defines_selftest.h"[m
1267[35m#include [m[31m"selftest.h"[m
1268[35m#include [m[31m"selftest_phy.h"[m
1269[35m#include [m[31m<curses.h>[m
1270[35m#include [m[31m<time.h>[m
1271
1272[35m#define NUM_PORTS [m[31m4[m
1273
1274[32mstatic[m [32mint[m prev_good_pkts[NUM_PORTS];
1275[32mstatic[m [32mint[m prev_bad_pkts[NUM_PORTS];
1276
1277[34m/*
1278 * Reset the interface and configure it for continuous operation
1279 */[m
1280[32mvoid[m phyResetContinuous([32mvoid[m) {
1281 [32mint[m i;
1282
1283 [38;5;130mfor[m (i = [31m0[m; i < NUM_PORTS; i++) {
1284 prev_good_pkts[i] = [31m0[m;
1285 prev_bad_pkts[i] = [31m0[m;[24;63H21,12[10C6%
1286[31msearch hit BOTTOM, continuing at TOP[m[24;63H[K[24;63H21,12[10C6%[12;12H[?12l[?25h[?25l[24;1H/\<prev_good_pkts\>[24;20H[K[24;1H[62C31,5[11C6%[22;5H[?12l[?25h[?25l[24;63H[K[24;1H[27m[m[H[2J[1;4H readReg(&nf2, PHY_TEST_PHY_0_RX_ERR_PKT_CNT_REG + i * PHY_TEST_PHY_GROUP_INN[2;1HST_OFFSET, &bad_pkts);
1287 printw([31m" Good: [m[35m%d[m[31m Bad: [m[35m%d[m[31m"[m, good_pkts, bad_pkts);[5;4H printw([31m"[m[35m\n[m[31m"[m);[7;4H [34m// Verify if we should reset the counters[m
1288 [34m/*if ((port_status & 0x1100) == 0x1100) {
1289 // Only reset if the number of good packets has incremented but the bad
1290 // packets have remained the same
1291 if (bad_pkts == prev_bad_pkts[i] && good_pkts != prev_good_pkts[i]) {
1292 writeReg(&nf2, PHY_TEST_PHY_0_RX_CTRL_REG + i * PHY_TEST_PHY_GROUP_INST__[13;1HOFFSET, 0x3);
1293 }
1294
1295 // Update the counters
1296 prev_bad_pkts[i] = bad_pkts;
1297 prev_good_pkts[i] = good_pkts;
1298 }*/[m[21;4H [34m// Update the good flag[m
1299 [38;5;130mif[m (bad_pkts != [31m0[m)[23;6H good = [31m0[m;[24;63H93,56[9C61%[11;56H[?12l[?25h[?25l[24;1H/\<prev_good_pkts\>[24;63H[K[24;1H[62C99,7[10C61%[18;7H[?12l[?25h[?25l[24;63H[K[24;1H[31msearch hit BOTTOM, continuing at TOP[27m[m[H[2J[1;1H[34m *
1300 */[m
1301
1302[35m#include [m[31m"../lib/C/reg_defines_selftest.h"[m
1303[35m#include [m[31m"selftest.h"[m
1304[35m#include [m[31m"selftest_phy.h"[m
1305[35m#include [m[31m<curses.h>[m
1306[35m#include [m[31m<time.h>[m
1307
1308[35m#define NUM_PORTS [m[31m4[m
1309
1310[32mstatic[m [32mint[m prev_good_pkts[NUM_PORTS];
1311[32mstatic[m [32mint[m prev_bad_pkts[NUM_PORTS];
1312
1313[34m/*
1314 * Reset the interface and configure it for continuous operation
1315 */[m
1316[32mvoid[m phyResetContinuous([32mvoid[m) {
1317 [32mint[m i;
1318
1319 [38;5;130mfor[m (i = [31m0[m; i < NUM_PORTS; i++) {
1320 prev_good_pkts[i] = [31m0[m;
1321 prev_bad_pkts[i] = [31m0[m;[24;63H21,12[10C6%
1322[31msearch hit BOTTOM, continuing at TOP[m[24;63H[K[24;63H21,12[10C6%[12;12H[?12l[?25h[?25l[24;64H2[13;12H[?12l[?25h[?25l[24;64H3,0-1[14;1H[?12l[?25h[?25l[24;64H4,2 [15;2H[?12l[?25h[?25l[24;64H5,12[16;12H[?12l[?25h[?25l[24;64H6,3 [17;3H[?12l[?25h[?25l[24;64H7,12[18;12H[?12l[?25h[?25l[24;64H8,8 [19;8H[?12l[?25h[?25l[24;64H9,0-1[20;1H[?12l[?25h[?25l[24;63H30,12 [21;12H[?12l[?25h[?25l[24;64H1[22;12H[?12l[?25h[?25l[24;64H2[23;12H[?12l[?25h[?25l[1;23r[23;1H
1323[1;24r[20;35H[106m{[m[23;2H [106m}[m[24;1H[K[24;63H33,3[11C7%[23;3H[?12l[?25h[?25l[1;23r[23;1H
1324[1;24r[19;35H{[22;3H}[24;63H[K[24;63H34,0-1[9C8%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1325[1;24r[23;2H [34m// Stop the test (and wait for the test to stop)[m[24;63H[K[24;63H35,12[10C8%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1326[1;24r[23;2H writeReg(&nf2, PHY_TEST_CTRL_REG, [31m0x0[m);[24;63H[K[24;63H36,12[10C9%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1327[1;24r[23;2H sleep([31m1[m);[24;63H[K[24;63H37,11[9C10%[23;11H[?12l[?25h[?25l[1;23r[23;1H
1328[1;24r[24;63H[K[24;63H38,0-1[8C11%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1329[1;24r[23;2H writeReg(&nf2, PHY_TEST_PATTERN_REG, PHY_TEST_PATTERN_ENABLE_MASK);[24;63H[K[24;63H39,12[9C11%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1330[1;24r[24;63H[K[24;63H40,0-1[8C12%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1331[1;24r[23;2H [34m// Start the test[m[24;63H[K[24;63H41,12[9C13%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1332[1;24r[23;2H writeReg(&nf2, PHY_TEST_CTRL_REG, PHY_TEST_CTRL_REPEAT);[24;63H[K[24;63H42,12[9C14%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1333[1;24r[23;1H} [34m// phyResetContinuous[m[24;63H[K[24;63H43,12[9C14%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1334[1;24r[24;63H[K[24;63H44,0-1[8C15%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1335[1;24r[23;1H[34m/*[m[24;63H[K[24;63H45,2[10C16%[23;2H[?12l[?25h[?25l[1;23r[23;1H
1336[1;24r[23;1H[34m * Show the status of the SATA test when running in continuous mode[m[24;63H[K[24;63H46,12[9C17%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1337[1;24r[23;1H[34m *[m[24;63H[K[24;63H47,2[10C17%[23;2H[?12l[?25h[?25l[1;23r[23;1H
1338[1;24r[23;1H[34m * Return -- boolean indicating success[m[24;63H[K[24;63H48,12[9C18%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1339[1;24r[23;1H[34m */[m[24;63H[K[24;63H49,3[10C19%[23;3H[?12l[?25h[?25l[1;23r[23;1H
1340[1;24r[23;1H[32mint[m phyShowStatusContinuous([32mvoid[m) {[24;63H[K[24;63H50,12[9C20%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1341[1;24r[23;2H [32munsigned[m [32mint[m val;[24;63H[K[24;63H51,12[9C20%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1342[1;24r[23;2H [32munsigned[m [32mint[m port_status;[24;63H[K[24;63H52,12[9C21%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1343[1;24r[23;2H [32munsigned[m [32mint[m good_pkts;[24;63H[K[24;63H53,12[9C22%[23;12H[?12l[?25h[?25l[24;64H2[22;12H[?12l[?25h[?25l[24;64H1[21;12H[?12l[?25h[?25l[24;64H0[20;12H[?12l[?25h[?25l[24;63H49,3 [19;3H[?12l[?25h[?25l[24;64H8,12[18;12H[?12l[?25h[?25l[24;64H7,2 [17;2H[?12l[?25h[?25l[24;64H6,12[16;12H[?12l[?25h[?25l[24;64H5,2 [15;2H[?12l[?25h[?25l[24;64H4,0-1[14;1H[?12l[?25h[?25l[24;64H5,2 [15;2H[?12l[?25h[?25l[24;64H6,12[16;12H[?12l[?25h[?25l[24;64H7,2 [17;2H[?12l[?25h[?25l[24;64H8,12[18;12H[?12l[?25h[?25l[24;64H9,3 [19;3H[?12l[?25h[?25l[24;63H50,12[20;12H[?12l[?25h[?25l[24;64H1[21;12H[?12l[?25h[?25l[24;64H2[22;12H[?12l[?25h[?25l[24;64H3[23;12H[?12l[?25h[?25l[1;23r[23;1H
1344[1;24r[23;2H [32munsigned[m [32mint[m bad_pkts;[24;63H[K[24;63H54,12[9C23%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1345[1;24r[24;63H[K[24;63H55,0-1[8C23%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1346[1;24r[23;2H [32mint[m i;[24;63H[K[24;63H56,8[10C24%[23;8H[?12l[?25h[?25l[1;23r[23;1H
1347[1;24r[24;63H[K[24;63H57,0-1[8C25%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1348[1;24r[23;2H [32mint[m x, y;[24;63H[K[24;63H58,11[9C26%[23;11H[?12l[?25h[?25l[1;23r[23;1H
1349[1;24r[24;63H[K[24;63H59,0-1[8C26%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1350[1;24r[23;2H [32mint[m good = [31m1[m;[24;63H[K[24;63H60,12[9C27%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1351[1;24r[24;63H[K[24;63H61,0-1[8C28%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1352[1;24r[23;2H [34m// Store the current screen position[m[24;63H[K[24;63H62,12[9C29%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1353[1;24r[23;2H getyx(stdscr, y, x);[24;63H[K[24;63H63,12[9C29%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1354[1;24r[24;63H[K[24;63H64,0-1[8C30%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1355[1;24r[23;2H [34m// Move down a line[m[24;63H[K[24;63H65,12[9C31%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1356[1;24r[23;2H move(y + [31m1[m, x);[24;63H[K[24;63H66,12[9C32%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1357[1;24r[24;63H[K[24;63H67,0-1[8C32%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1358[1;24r[23;2H [34m// Read the individual port registers[m[24;63H[K[24;63H68,12[9C33%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1359[1;24r[23;2H [38;5;130mfor[m (i = [31m0[m; i < NUM_PORTS; i++) {[24;63H[K[24;63H69,12[9C34%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1360[1;24r[23;4H printw([31m" Port [m[35m%d[m[31m:"[m, i + [31m1[m);[24;63H[K[24;63H70,12[9C35%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1361[1;24r[24;63H[K[24;63H71,0-1[8C35%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1362[1;24r[23;4H [34m// Start with the status register[m[24;63H[K[24;63H72,12[9C36%[23;12H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H readReg[106m([m&nf2, PHY_TEST_PHY_0_RX_STATUS_REG + i * PHY_TEST_PHY_GROUP_INST_OFFF[23;1HSET, &port_status[106m)[m;[24;63H[K[24;63H73,12[9C37%[22;12H[?12l[?25h[?25l[1;23r[23;1H
1363[1;24r[21;12H([67CFF[22;1HS[16C)
1364 [38;5;130mif[m (port_status & [31m0x100[m) {[24;63H[K[24;63H74,12[9C38%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1365[1;24r[23;6H printw([31m" link w/ [m[35m%d[m[31m"[m, (port_status & [31m0xf0000[m) >> [31m16[m);[24;63H[K[24;63H75,12[9C39%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1366[1;24r[21;30H[106m{[m[23;4H [106m}[m[24;63H[K[24;63H76,5[10C40%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1367[1;24r[20;30H{[22;5H}
1368 [38;5;130melse[m {[24;63H[K[24;63H77,10[9C40%[23;10H[?12l[?25h[?25l[1;23r[23;1H
1369[1;24r[23;6H printw([31m" no link"[m);[24;63H[K[24;63H78,12[9C41%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1370[1;24r[23;6H good = [31m0[m;[24;63H[K[24;63H79,12[9C42%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1371[1;24r[20;10H[106m{[m[23;4H [106m}[m[24;63H[K[24;63H80,5[10C42%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1372[1;24r[19;10H{[22;5H}[24;63H[K[24;63H81,0-1[8C43%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1373[1;24r[23;4H [34m// Read the number of good/bad packets[m[24;63H[K[24;63H82,12[9C44%[23;12H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H readReg[106m([m&nf2, PHY_TEST_PHY_0_RX_GOOD_PKT_CNT_REG + i * PHY_TEST_PHY_GROUP_INN[23;1HST_OFFSET, &good_pkts[106m)[m;[24;63H[K[24;63H83,12[9C45%[22;12H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[20;12H([67CNN[21;1HS[20C)
1374 readReg[106m([m&nf2, PHY_TEST_PHY_0_RX_ERR_PKT_CNT_REG + i * PHY_TEST_PHY_GROUP_INN[23;1HST_OFFSET, &bad_pkts[106m)[m;[24;63H[K[24;63H84,12[9C46%[22;12H[?12l[?25h[?25l[1;23r[23;1H
1375[1;24r[21;12H([67CNN[22;1HS[19C)
1376 printw([31m" Good: [m[35m%d[m[31m Bad: [m[35m%d[m[31m"[m, good_pkts, bad_pkts);[24;63H[K[24;63H85,12[9C47%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1377[1;24r[24;63H[K[24;63H86,0-1[8C48%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1378[1;24r[23;4H printw([31m"[m[35m\n[m[31m"[m);[24;63H[K[24;63H87,12[9C48%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1379[1;24r[24;63H[K[24;63H88,0-1[8C49%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1380[1;24r[23;4H [34m// Verify if we should reset the counters[m[24;63H[K[24;63H89,12[9C50%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1381[1;24r[23;4H [34m/*if ((port_status & 0x1100) == 0x1100) {[m[24;63H[K[24;63H90,12[9C51%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1382[1;24r[23;1H[34m // Only reset if the number of good packets has incremented but the bad[m[24;63H[K[24;63H91,12[9C51%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1383[1;24r[23;1H[34m // packets have remained the same[m[24;63H[K[24;63H92,12[9C52%[23;12H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;1H[34m if (bad_pkts == prev_bad_pkts[i] && good_pkts != prev_good_pkts[i]) {
1384 writeReg(&nf2, PHY_TEST_PHY_0_RX_CTRL_REG + i * PHY_TEST_PHY_GROUP_INST_[m[23;1H[94m@ [m[24;63H[K[24;63H93,12[9C53%[22;12H[?12l[?25h[?25l[1;23r[23;1H
1385[1;24r[22;1H[34m writeReg(&nf2, PHY_TEST_PHY_0_RX_CTRL_REG + i * PHY_TEST_PHY_GROUP_INST__[23;1HOFFSET, 0x3);[m[24;63H[K[24;63H94,12[9C54%[22;12H[?12l[?25h[?25l[1;23r[23;1H
1386[1;24r[20;75H[34m[106m{[m
1387
1388
1389[34m [m[34m[106m}[m[24;63H[K[24;63H95,7[10C54%[23;7H[?12l[?25h[?25l[1;23r[23;1H
1390[1;24r[19;75H[34m{[22;7H}[m[24;63H[K[24;63H96,0-1[8C55%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1391[1;24r[23;1H[34m // Update the counters[m[24;63H[K[24;63H97,12[9C56%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1392[1;24r[23;1H[34m prev_bad_pkts[i] = bad_pkts;[m[24;63H[K[24;63H98,12[9C56%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1393[1;24r[23;1H[34m prev_good_pkts[i] = good_pkts;[m[24;63H[K[24;63H99,12[9C57%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1394[1;24r[23;1H[34m }*/[m[24;63H[K[24;63H100,7[9C58%[23;7H[?12l[?25h[?25l[1;23r[23;1H
1395[1;24r[24;63H[K[24;63H101,0-1[7C59%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1396[1;24r[23;4H [34m// Update the good flag[m[24;63H[K[24;63H102,12[8C59%[23;12H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H [38;5;130mif[m (bad_pkts != [31m0[m)[23;6H good = [31m0[m;[24;63H[K[24;63H103,12[8C61%[22;12H[?12l[?25h[?25l[24;65H4[23;12H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;2H }[24;63H[K[24;63H105,3[9C62%[22;3H[?12l[?25h[?25l[24;65H6,0-1[23;1H[?12l[?25h[?25l[1;23r[23;1H
1397[1;24r[23;2H [34m// Print overall success/failure[m[24;63H[K[24;63H107,12[8C62%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1398[1;24r[23;2H move[106m([my, x[106m)[m;[24;63H[K[24;63H108,12[8C63%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1399[1;24r[22;7H(y, x)
1400 printw([31m"PHY test: [m[35m%s[m[31m"[m, good ? [31m"pass"[m : [31m"fail"[m);[24;63H[K[24;63H109,12[8C64%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1401[1;24r[23;2H move(y + [31m1[m + NUM_PORTS, x);[24;63H[K[24;63H110,12[8C65%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1402[1;24r[24;63H[K[24;63H111,0-1[7C65%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1403[1;24r[23;2H [38;5;130mreturn[m good;[24;63H[K[24;63H112,12[8C66%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1404[1;24r[23;1H} [34m// phyShowStatusContinuous[m[24;63H[K[24;63H113,12[8C67%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1405[1;24r[24;63H[K[24;63H114,0-1[7C68%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1406[1;24r[23;1H[34m/*[m[24;63H[K[24;63H115,2[9C68%[23;2H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;1H[34m * Stop the interface
1407 */[m[24;63H[K[24;63H116,12[8C70%[22;12H[?12l[?25h[?25l[24;65H7,3 [23;3H[?12l[?25h[?25l[1;23r[23;1H
1408[1;24r[23;1H[32mvoid[m phyStopContinuous([32mvoid[m) {[24;63H[K[24;63H118,12[8C70%[23;12H[?12l[?25h[?25l[24;65H7,3 [22;3H[?12l[?25h[?25l[24;65H6,12[21;12H[?12l[?25h[?25l[24;65H5,2 [20;2H[?12l[?25h[?25l[24;65H4,0-1[19;1H[?12l[?25h[?25l[24;65H3,12 [18;12H[?12l[?25h[?25l[24;65H2[17;12H[?12l[?25h[?25l[24;65H1,0-1[16;1H[?12l[?25h[?25l[24;65H0,12 [15;12H[?12l[?25h[?25l[24;64H09[14;12H[?12l[?25h[?25l[13;7H[106m([my, x[106m)[m[24;65H8[13;12H[?12l[?25h[?25l(y, x)[24;65H7[12;12H[?12l[?25h[?25l[24;65H6,0-1[11;1H[?12l[?25h[?25l[24;65H5,3 [10;3H[?12l[?25h[?25l[24;65H4,12[9;12H[?12l[?25h[?25l[24;65H3[8;12H[?12l[?25h[?25l[24;65H2[7;12H[?12l[?25h[?25l[24;65H1,0-1[6;1H[?12l[?25h[?25l[24;65H0,7 [5;7H[?12l[?25h[?25l[24;63H99,12[4;12H[?12l[?25h[?25l[24;64H8[3;12H[?12l[?25h[?25l[24;64H7[2;12H[?12l[?25h[?25l[24;64H6,0-1[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m }[m[24;63H[K[24;63H95,7[10C70%[1;7H[?12l[?25h[?25l[1;23r[1;1H[2L[1;24r[1;1H[34m writeReg(&nf2, PHY_TEST_PHY_0_RX_CTRL_REG + i * PHY_TEST_PHY_GROUP_INST__[2;1HOFFSET, 0x3);[m[24;63H[K[24;63H94,12[9C68%[1;12H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m if (bad_pkts == prev_bad_pkts[i] && good_pkts != prev_good_pkts[i]) {[m[24;63H[K[24;63H93,12[9C68%[1;12H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m // packets have remained the same[m[24;63H[K[24;63H92,12[9C67%[1;12H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m // Only reset if the number of good packets has incremented but the bad[m[24;63H[K[24;63H91,12[9C66%[1;12H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;4H [34m/*if ((port_status & 0x1100) == 0x1100) {[m[24;63H[K[24;63H90,12[9C65%[1;12H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;4H [34m// Verify if we should reset the counters[m[24;63H[K[24;63H89,12[9C65%[1;12H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H88,0-1[8C64%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;4H printw([31m"[m[35m\n[m[31m"[m);[24;63H[K[24;63H87,12[9C63%[1;12H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H86,0-1[8C62%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;4H printw([31m" Good: [m[35m%d[m[31m Bad: [m[35m%d[m[31m"[m, good_pkts, bad_pkts);[24;63H[K[24;63H85,12[9C62%[1;12H[?12l[?25h[?25l[1;23r[1;1H[2L[1;24r[1;4H readReg[106m([m&nf2, PHY_TEST_PHY_0_RX_ERR_PKT_CNT_REG + i * PHY_TEST_PHY_GROUP_INN[2;1HST_OFFSET, &bad_pkts[106m)[m;[24;63H[K[24;63H84,12[9C61%[1;12H[?12l[?25h[?25l[1;23r[1;1H[2L[1;24r[1;4H readReg[106m([m&nf2, PHY_TEST_PHY_0_RX_GOOD_PKT_CNT_REG + i * PHY_TEST_PHY_GROUP_INN[2;1HST_OFFSET, &good_pkts[106m)[m;[3;12H([67CNN[4;1HS[19C)[24;63H[K[24;63H83,12[9C59%[1;12H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;4H [34m// Read the number of good/bad packets[m[2;12H([67CNN[3;1HS[20C)[24;63H[K[24;63H82,12[9C59%[1;12H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H81,0-1[8C58%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;4H }[24;63H[K[24;63H80,5[10C57%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;6H good = [31m0[m;[24;63H[K[24;63H79,12[9C56%[1;12H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;6H printw([31m" no link"[m);[24;63H[K[24;63H78,12[9C56%[1;12H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;4H [38;5;130melse[m [106m{[4;5H}[m[24;63H[K[24;63H77,10[9C55%[1;10H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;4H }[2;10H{[5;5H}[24;63H[K[24;63H76,5[10C54%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;6H printw([31m" link w/ [m[35m%d[m[31m"[m, (port_status & [31m0xf0000[m) >> [31m16[m);[24;63H[K[24;63H75,12[9C54%[1;12H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;4H [38;5;130mif[m (port_status & [31m0x100[m) {[23;1H[94m@ [m[24;63H[K[24;63H74,12[9C53%[1;12H[?12l[?25h[?25l[1;23r[1;1H[2L[1;24r[1;4H readReg[106m([m&nf2, PHY_TEST_PHY_0_RX_STATUS_REG + i * PHY_TEST_PHY_GROUP_INST_OFFF[2;1HSET, &port_status[106m)[m;[24;63H[K[24;63H73,12[9C52%[1;12H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;4H [34m// Start with the status register[m[2;12H([67CFF[3;1HS[16C)[24;63H[K[24;63H72,12[9C51%[1;12H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H71,0-1[8C51%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;4H printw([31m" Port [m[35m%d[m[31m:"[m, i + [31m1[m);[24;63H[K[24;63H70,12[9C50%[1;12H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [38;5;130mfor[m (i = [31m0[m; i < NUM_PORTS; i++) {[24;63H[K[24;63H69,12[9C49%[1;12H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [34m// Read the individual port registers[m[24;63H[K[24;63H68,12[9C48%[1;12H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H67,0-1[8C48%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H move(y + [31m1[m, x);[24;63H[K[24;63H66,12[9C47%[1;12H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [34m// Move down a line[m[24;63H[K[24;63H65,12[9C46%[1;12H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[23;1H[94m@ [m[24;63H[K[24;63H64,0-1[8C45%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H getyx(stdscr, y, x);[24;63H[K[24;63H63,12[9C45%[1;12H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [34m// Store the current screen position[m[23;1H[94m@ [m[24;63H[K[24;63H62,12[9C44%[1;12H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H61,0-1[8C44%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32mint[m good = [31m1[m;[24;63H[K[24;63H60,12[9C43%[1;12H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H59,0-1[8C42%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32mint[m x, y;[24;63H[K[24;63H58,11[9C42%[1;11H[?12l[?25h[?25l[24;64H9,0-1[2;1H[?12l[?25h[?25l[24;63H60,12 [3;12H[?12l[?25h[?25l[24;64H1,0-1[4;1H[?12l[?25h[?25l[24;64H2,12 [5;12H[?12l[?25h[?25l[24;64H3[6;12H[?12l[?25h[?25l[24;64H4,0-1[7;1H[?12l[?25h[?25l[24;64H5,12 [8;12H[?12l[?25h[?25l[24;64H6[9;12H[?12l[?25h[?25l[24;64H7,0-1[10;1H[?12l[?25h[?25l[24;64H8,12 [11;12H[?12l[?25h[?25l[24;64H9[12;12H[?12l[?25h[?25l[24;63H70[13;12H[?12l[?25h[?25l[24;64H1,0-1[14;1H[?12l[?25h[?25l[24;64H2,12 [15;12H[?12l[?25h[?25l[16;12H[106m([m[67CFF[17;1HS[16C[106m)[m[24;64H3[16;12H[?12l[?25h[?25l([67CFF[17;1HS[16C)[24;64H4[18;12H[?12l[?25h[?25l[24;64H5[19;12H[?12l[?25h[?25l[18;30H[106m{[20;5H}[m[24;64H6,5 [20;5H[?12l[?25h[?25l[18;30H{[20;5H}[24;64H7,10[21;10H[?12l[?25h[?25l[24;64H8,12[22;12H[?12l[?25h[?25l[24;64H9[23;12H[?12l[?25h[?25l[1;23r[23;1H
1409[1;24r[20;10H[106m{[m[23;4H [106m}[m[24;63H[K[24;63H80,5[10C42%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1410[1;24r[19;10H{[22;5H}[24;63H[K[24;63H81,0-1[8C43%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1411[1;24r[23;4H [34m// Read the number of good/bad packets[m[24;63H[K[24;63H82,12[9C44%[23;12H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H readReg[106m([m&nf2, PHY_TEST_PHY_0_RX_GOOD_PKT_CNT_REG + i * PHY_TEST_PHY_GROUP_INN[23;1HST_OFFSET, &good_pkts[106m)[m;[24;63H[K[24;63H83,12[9C45%[22;12H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[20;12H([67CNN[21;1HS[20C)
1412 readReg[106m([m&nf2, PHY_TEST_PHY_0_RX_ERR_PKT_CNT_REG + i * PHY_TEST_PHY_GROUP_INN[23;1HST_OFFSET, &bad_pkts[106m)[m;[24;63H[K[24;63H84,12[9C46%[22;12H[?12l[?25h[?25l[1;23r[23;1H
1413[1;24r[21;12H([67CNN[22;1HS[19C)
1414 printw([31m" Good: [m[35m%d[m[31m Bad: [m[35m%d[m[31m"[m, good_pkts, bad_pkts);[24;63H[K[24;63H85,12[9C47%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1415[1;24r[24;63H[K[24;63H86,0-1[8C48%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1416[1;24r[23;4H printw([31m"[m[35m\n[m[31m"[m);[24;63H[K[24;63H87,12[9C48%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1417[1;24r[24;63H[K[24;63H88,0-1[8C49%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1418[1;24r[23;4H [34m// Verify if we should reset the counters[m[24;63H[K[24;63H89,12[9C50%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1419[1;24r[23;4H [34m/*if ((port_status & 0x1100) == 0x1100) {[m[24;63H[K[24;63H90,12[9C51%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1420[1;24r[23;1H[34m // Only reset if the number of good packets has incremented but the bad[m[24;63H[K[24;63H91,12[9C51%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1421[1;24r[23;1H[34m // packets have remained the same[m[24;63H[K[24;63H92,12[9C52%[23;12H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;1H[34m if (bad_pkts == prev_bad_pkts[i] && good_pkts != prev_good_pkts[i]) {
1422 writeReg(&nf2, PHY_TEST_PHY_0_RX_CTRL_REG + i * PHY_TEST_PHY_GROUP_INST_[m[23;1H[94m@ [m[24;63H[K[24;63H93,12[9C53%[22;12H[?12l[?25h[?25l[1;23r[23;1H
1423[1;24r[22;1H[34m writeReg(&nf2, PHY_TEST_PHY_0_RX_CTRL_REG + i * PHY_TEST_PHY_GROUP_INST__[23;1HOFFSET, 0x3);[m[24;63H[K[24;63H94,12[9C54%[22;12H[?12l[?25h[?25l[1;23r[23;1H
1424[1;24r[20;75H[34m[106m{[m
1425
1426
1427[34m [m[34m[106m}[m[24;63H[K[24;63H95,7[10C54%[23;7H[?12l[?25h[?25l[1;23r[23;1H
1428[1;24r[19;75H[34m{[22;7H}[m[24;63H[K[24;63H96,0-1[8C55%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1429[1;24r[23;1H[34m // Update the counters[m[24;63H[K[24;63H97,12[9C56%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1430[1;24r[23;1H[34m prev_bad_pkts[i] = bad_pkts;[m[24;63H[K[24;63H98,12[9C56%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1431[1;24r[23;1H[34m prev_good_pkts[i] = good_pkts;[m[24;63H[K[24;63H99,12[9C57%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1432[1;24r[23;1H[34m }*/[m[24;63H[K[24;63H100,7[9C58%[23;7H[?12l[?25h[?25l[1;23r[23;1H
1433[1;24r[24;63H[K[24;63H101,0-1[7C59%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1434[1;24r[23;4H [34m// Update the good flag[m[24;63H[K[24;63H102,12[8C59%[23;12H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H [38;5;130mif[m (bad_pkts != [31m0[m)[23;6H good = [31m0[m;[24;63H[K[24;63H103,12[8C61%[22;12H[?12l[?25h[?25l[24;65H4[23;12H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;2H }[24;63H[K[24;63H105,3[9C62%[22;3H[?12l[?25h[?25l[24;65H6,0-1[23;1H[?12l[?25h[?25l[1;23r[23;1H
1435[1;24r[23;2H [34m// Print overall success/failure[m[24;63H[K[24;63H107,12[8C62%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1436[1;24r[23;2H move[106m([my, x[106m)[m;[24;63H[K[24;63H108,12[8C63%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1437[1;24r[22;7H(y, x)
1438 printw([31m"PHY test: [m[35m%s[m[31m"[m, good ? [31m"pass"[m : [31m"fail"[m);[24;63H[K[24;63H109,12[8C64%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1439[1;24r[23;2H move(y + [31m1[m + NUM_PORTS, x);[24;63H[K[24;63H110,12[8C65%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1440[1;24r[24;63H[K[24;63H111,0-1[7C65%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1441[1;24r[23;2H [38;5;130mreturn[m good;[24;63H[K[24;63H112,12[8C66%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1442[1;24r[23;1H} [34m// phyShowStatusContinuous[m[24;63H[K[24;63H113,12[8C67%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1443[1;24r[24;63H[K[24;63H114,0-1[7C68%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1444[1;24r[23;1H[34m/*[m[24;63H[K[24;63H115,2[9C68%[23;2H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;1H[34m * Stop the interface
1445 */[m[24;63H[K[24;63H116,12[8C70%[22;12H[?12l[?25h[?25l[24;65H7,3 [23;3H[?12l[?25h[?25l[1;23r[23;1H
1446[1;24r[23;1H[32mvoid[m phyStopContinuous([32mvoid[m) {[24;63H[K[24;63H118,12[8C70%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1447[1;24r[23;2H [34m// Stop the test (and wait for the test to stop)[m[24;63H[K[24;63H119,12[8C71%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1448[1;24r[23;2H writeReg(&nf2, PHY_TEST_CTRL_REG, [31m0x00000000[m);[24;63H[K[24;63H120,12[8C72%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1449[1;24r[23;1H} [34m// phyStopContinuous[m[24;63H[K[24;63H121,12[8C73%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1450[1;24r[24;63H[K[24;63H122,0-1[7C73%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1451[1;24r[23;1H[34m/*[m[24;63H[K[24;63H123,2[9C74%[23;2H[?12l[?25h[?25l[1;23r[23;1H
1452[1;24r[23;1H[34m * Get the result of the test[m[24;63H[K[24;63H124,12[8C75%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1453[1;24r[23;1H[34m *[m[24;63H[K[24;63H125,2[9C76%[23;2H[?12l[?25h[?25l[1;23r[23;1H
1454[1;24r[23;1H[34m * Return -- boolean indicating success[m[24;63H[K[24;63H126,12[8C76%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1455[1;24r[23;1H[34m */[m[24;63H[K[24;63H127,3[9C77%[23;3H[?12l[?25h[?25l[1;23r[23;1H
1456[1;24r[23;1H[32mint[m phyGetResult([32mvoid[m) {[24;63H[K[24;63H128,12[8C78%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1457[1;24r[23;2H [32munsigned[m [32mint[m val;[24;63H[K[24;63H129,12[8C79%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1458[1;24r[23;2H [32munsigned[m [32mint[m port_status;[24;63H[K[24;63H130,12[8C79%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1459[1;24r[23;2H [32munsigned[m [32mint[m good_pkts;[24;63H[K[24;63H131,12[8C80%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1460[1;24r[23;2H [32munsigned[m [32mint[m bad_pkts;[24;63H[K[24;63H132,12[8C81%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1461[1;24r[24;63H[K[24;63H133,0-1[7C82%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1462[1;24r[23;2H [32mint[m i;[24;63H[K[24;63H134,8[9C82%[23;8H[?12l[?25h[?25l[1;23r[23;1H
1463[1;24r[24;63H[K[24;63H135,0-1[7C83%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1464[1;24r[23;2H [32mint[m good = [31m1[m;[24;63H[K[24;63H136,12[8C84%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1465[1;24r[24;63H[K[24;63H137,0-1[7C85%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1466[1;24r[23;2H [34m// Read the individual port registers[m[24;63H[K[24;63H138,12[8C85%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1467[1;24r[23;2H [38;5;130mfor[m (i = [31m0[m; i < NUM_PORTS; i++) {[24;63H[K[24;63H139,12[8C86%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1468[1;24r[23;4H [34m// Start with the status register[m[24;63H[K[24;63H140,12[8C87%[23;12H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H readReg[106m([m&nf2, PHY_TEST_PHY_0_RX_STATUS_REG + i * PHY_TEST_PHY_GROUP_INST_OFFF[23;1HSET, &port_status[106m)[m;[24;63H[K[24;63H141,12[8C88%[22;12H[?12l[?25h[?25l[1;23r[23;1H
1469[1;24r[21;12H([67CFF[22;1HS[16C)
1470 [38;5;130mif[m ((port_status & [31m0x100[m) == [31m0[m) {[24;63H[K[24;63H142,12[8C88%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1471[1;24r[23;6H good = [31m0[m;[24;63H[K[24;63H143,12[8C89%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1472[1;24r[21;37H[106m{[m[23;4H [106m}[m[24;63H[K[24;63H144,5[9C90%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1473[1;24r[20;37H{[22;5H}[24;63H[K[24;63H145,0-1[7C91%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1474[1;24r[23;4H [34m// Read the number of good/bad packets[m[24;63H[K[24;63H146,12[8C91%[23;12H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H readReg[106m([m&nf2, PHY_TEST_PHY_0_RX_GOOD_PKT_CNT_REG + i * PHY_TEST_PHY_GROUP_INN[23;1HST_OFFSET, &good_pkts[106m)[m;[24;63H[K[24;63H147,12[8C92%[22;12H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[20;12H([67CNN[21;1HS[20C)
1475 readReg[106m([m&nf2, PHY_TEST_PHY_0_RX_ERR_PKT_CNT_REG + i * PHY_TEST_PHY_GROUP_INSS[23;1HT_OFFSET, &bad_pkts[106m)[m;[24;63H[K[24;63H148,12[8C93%[22;12H[?12l[?25h[?25l[1;23r[23;1H
1476[1;24r[21;12H([67CSS[22;1HT[18C)[24;63H[K[24;63H149,0-1[7C94%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1477[1;24r[23;4H [34m// Update the good flag[m[24;63H[K[24;63H150,12[8C94%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1478[1;24r[23;4H [38;5;130mif[m (bad_pkts != [31m0[m) {[24;63H[K[24;63H151,12[8C95%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1479[1;24r[23;6H good = [31m0[m;[24;63H[K[24;63H152,12[8C96%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1480[1;24r[21;24H[106m{[m[23;4H [106m}[m[24;63H[K[24;63H153,5[9C97%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1481[1;24r[5;35H[106m{[m[20;24H{[22;5H}
1482 [106m}[m[24;63H[K[24;63H154,3[9C97%[23;3H[?12l[?25h[?25l[1;23r[23;1H
1483[1;24r[4;35H{[22;3H}[24;63H[K[24;63H155,0-1[7C98%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1484[1;24r[23;2H [38;5;130mreturn[m good;[24;63H[K[24;63H156,12[8C99%[23;12H[?12l[?25h[?25l[1;23r[23;1H
1485[1;24r[23;1H} [34m// phyGetResult[m[24;63H[K[24;63H157,12[8CBot[23;12H[?12l[?25h[?25l[24;63H[K[24;1H:[?12l[?25hq[?25l[?12l[?25h[?25l[24;2H[K[24;2H[?12l[?25h [?25l[61C157,12[8CBot[23;12H[?12l[?25h[?25l[24;65H6[22;12H[?12l[?25h[?25l[24;65H5,0-1[21;1H[?12l[?25h[?25l[2;35H[106m{[20;3H}[m[24;65H4,3 [20;3H[?12l[?25h[?25l[2;35H{[17;24H[106m{[19;5H}[m
1486 }[24;65H3,5[19;5H[?12l[?25h[?25l[17;24H{[19;5H}[24;65H2,12[18;12H[?12l[?25h[?25l[24;65H1[17;12H[?12l[?25h[?25l[24;65H0[16;12H[?12l[?25h[?25l[24;64H49,0-1[15;1H[?12l[?25h[?25l[13;12H[106m([m[67CSS[14;1HT[18C[106m)[m[24;65H8,12 [13;12H[?12l[?25h[?25l[11;12H[106m([m[67CNN[12;1HS[20C[106m)[m[13;12H([67CSS[14;1HT[18C)[24;65H7[11;12H[?12l[?25h[?25l([67CNN[12;1HS[20C)[24;65H6[10;12H[?12l[?25h[?25l[24;65H5,0-1[9;1H[?12l[?25h[?25l[6;37H[106m{[8;5H}[m[24;65H4,5 [8;5H[?12l[?25h[?25l[6;37H{[8;5H}[24;65H3,12[7;12H[?12l[?25h[?25l[24;65H2[6;12H[?12l[?25h[?25l[4;12H[106m([m[67CFF[5;1HS[16C[106m)[m[24;65H1[4;12H[?12l[?25h[?25l([67CFF[5;1HS[16C)[24;65H0[3;12H[?12l[?25h[?25l[24;64H39[2;12H[?12l[?25h[?25l[24;65H8[1;12H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H137,0-1[7C99%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32mint[m good = [31m1[m;[24;63H[K[24;63H136,12[8C98%[1;12H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H135,0-1[7C97%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32mint[m i;[24;63H[K[24;63H134,8[9C97%[1;8H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H133,0-1[7C96%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32munsigned[m [32mint[m bad_pkts;[24;63H[K[24;63H132,12[8C95%[1;12H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32munsigned[m [32mint[m good_pkts;[24;63H[K[24;63H131,12[8C94%[1;12H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32munsigned[m [32mint[m port_status;[24;63H[K[24;63H130,12[8C94%[1;12H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32munsigned[m [32mint[m val;[24;63H[K[24;63H129,12[8C93%[1;12H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[32mint[m phyGetResult([32mvoid[m) {[23;1H[94m@ [m[24;63H[K[24;63H128,12[8C92%[1;12H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m */[m[24;63H[K[24;63H127,3[9C92%[1;3H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m * Return -- boolean indicating success[m[23;1H[94m@ [m[24;63H[K[24;63H126,12[8C91%[1;12H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m *[m[24;63H[K[24;63H125,2[9C91%[1;2H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m * Get the result of the test[m[24;63H[K[24;63H124,12[8C91%[1;12H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m/*[m[24;63H[K[24;63H123,2[9C90%[1;2H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H122,0-1[7C89%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H} [34m// phyStopContinuous[m[24;63H[K[24;63H121,12[8C88%[1;12H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H writeReg(&nf2, PHY_TEST_CTRL_REG, [31m0x00000000[m);[24;63H[K[24;63H120,12[8C88%[1;12H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [34m// Stop the test (and wait for the test to stop)[m[23;1H[94m@ [m[24;63H[K[24;63H119,12[8C87%[1;12H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[32mvoid[m phyStopContinuous([32mvoid[m) {[24;63H[K[24;63H118,12[8C87%[1;12H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m */[m[24;63H[K[24;63H117,3[9C86%[1;3H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m * Stop the interface[m[24;63H[K[24;63H116,12[8C85%[1;12H[?12l[?25h[?25l[24;63H[K[24;1H:[?12l[?25h1[?25l[?12l[?25h
1487[?25l[27m[m[H[2J[1;1H[34m/* ****************************************************************************
1488 * vim:set shiftwidth=2 softtabstop=2 expandtab:
1489 * $Id: selftest_phy.c 5971 2010-03-06 06:44:56Z grg $
1490 *
1491 * Module: selftest_phy.c
1492 * Project: NetFPGA selftest
1493 * Description: SATA selftest module
1494 *
1495 * Change history:
1496 *
1497 */[m
1498
1499[35m#include [m[31m"../lib/C/reg_defines_selftest.h"[m
1500[35m#include [m[31m"selftest.h"[m
1501[35m#include [m[31m"selftest_phy.h"[m
1502[35m#include [m[31m<curses.h>[m
1503[35m#include [m[31m<time.h>[m
1504
1505[35m#define NUM_PORTS [m[31m4[m
1506
1507[32mstatic[m [32mint[m prev_good_pkts[NUM_PORTS];
1508[32mstatic[m [32mint[m prev_bad_pkts[NUM_PORTS];[24;63H1,1[11CTop[1;1H[?12l[?25h[?25l[24;63H2[2;1H[?12l[?25h[?25l[24;63H3[3;1H[?12l[?25h[?25l[24;63H4[4;1H[?12l[?25h[?25l[24;63H5[5;1H[?12l[?25h[?25l[24;63H6[6;1H[?12l[?25h[?25l[24;63H7[7;1H[?12l[?25h[?25l[24;63H8[8;1H[?12l[?25h[?25l[24;63H9[9;1H[?12l[?25h[?25l[24;63H10,1[10;1H[?12l[?25h[?25l[24;64H1[11;1H[?12l[?25h[?25l[24;64H2,0-1[12;1H[?12l[?25h[?25l[24;64H3,1 [13;1H[?12l[?25h[?25l[24;64H4[14;1H[?12l[?25h[?25l[24;64H5[15;1H[?12l[?25h[?25l[24;64H6[16;1H[?12l[?25h[?25l[24;64H7[17;1H[?12l[?25h[?25l[24;64H8,0-1[18;1H[?12l[?25h[?25l[24;64H9,1 [19;1H[?12l[?25h[?25l[24;63H20,0-1[20;1H[?12l[?25h[?25l[24;64H1,1 [21;1H[?12l[?25h[?25l[24;64H2[22;1H[?12l[?25h[?25l[24;64H3,0-1[23;1H[?12l[?25h[?25l[1;23r[23;1H
1509[1;24r[23;1H[34m/*[m[24;63H[K[24;63H24,1[11C0%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1510[1;24r[23;1H[34m * Reset the interface and configure it for continuous operation[m[24;63H[K[24;63H25,1[11C1%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1511[1;24r[23;1H[34m */[m[24;63H[K[24;63H26,1[11C2%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1512[1;24r[23;1H[32mvoid[m phyResetContinuous([32mvoid[m) {[24;63H[K[24;63H27,1[11C2%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1513[1;24r[23;2H [32mint[m i;[24;63H[K[24;63H28,1[11C3%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1514[1;24r[24;63H[K[24;63H29,0-1[9C4%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1515[1;24r[23;2H [38;5;130mfor[m (i = [31m0[m; i < NUM_PORTS; i++) {[24;63H[K[24;63H30,1[11C5%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1516[1;24r[23;4H prev_good_pkts[i] = [31m0[m;[24;63H[K[24;63H31,1[11C5%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1517[1;24r[23;4H prev_bad_pkts[i] = [31m0[m;[24;63H[K[24;63H32,1[11C6%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1518[1;24r[23;2H }[24;63H[K[24;63H33,1[11C7%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1519[1;24r[24;63H[K[24;63H34,0-1[9C8%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1520[1;24r[23;2H [34m// Stop the test (and wait for the test to stop)[m[24;63H[K[24;63H35,1[11C8%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1521[1;24r[23;2H writeReg(&nf2, PHY_TEST_CTRL_REG, [31m0x0[m);[24;63H[K[24;63H36,1[11C9%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1522[1;24r[23;2H sleep([31m1[m);[24;63H[K[24;63H37,1[10C10%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1523[1;24r[24;63H[K[24;63H38,0-1[8C11%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1524[1;24r[23;2H writeReg(&nf2, PHY_TEST_PATTERN_REG, PHY_TEST_PATTERN_ENABLE_MASK);[24;63H[K[24;63H39,1[10C11%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1525[1;24r[24;63H[K[24;63H40,0-1[8C12%[23;1H[?12l[?25h[?25l[24;63H[K[24;1H:[?12l[?25h1[?25l[?12l[?25h
1526[?25l[1;23r[1;1H[17L[1;24r[1;1H[34m/* ****************************************************************************
1527 * vim:set shiftwidth=2 softtabstop=2 expandtab:
1528 * $Id: selftest_phy.c 5971 2010-03-06 06:44:56Z grg $
1529 *
1530 * Module: selftest_phy.c
1531 * Project: NetFPGA selftest
1532 * Description: SATA selftest module
1533 *
1534 * Change history:
1535 *
1536 */[m
1537
1538[35m#include [m[31m"../lib/C/reg_defines_selftest.h"[m
1539[35m#include [m[31m"selftest.h"[m
1540[35m#include [m[31m"selftest_phy.h"[m
1541[35m#include [m[31m<curses.h>[m
1542[35m#include [m[31m<time.h>[m[24;1H[K[24;63H1,1[11CTop[1;1H[?12l[?25h[?25l[24;63H2[2;1H[?12l[?25h[?25l[24;63H3[3;1H[?12l[?25h[?25l[24;63H4[4;1H[?12l[?25h[?25l[24;63H5[5;1H[?12l[?25h[?25l[24;63H6[6;1H[?12l[?25h[?25l[24;63H7[7;1H[?12l[?25h[?25l[24;63H8[8;1H[?12l[?25h[?25l[24;63H9[9;1H[?12l[?25h[?25l[24;63H10,1[10;1H[?12l[?25h[?25l[24;64H1[11;1H[?12l[?25h[?25l[24;64H2,0-1[12;1H[?12l[?25h[?25l[24;64H3,1 [13;1H[?12l[?25h[?25l[24;64H4[14;1H[?12l[?25h[?25l[24;64H5[15;1H[?12l[?25h[?25l[24;64H6[16;1H[?12l[?25h[?25l[24;64H7[17;1H[?12l[?25h[?25l[24;64H8,0-1[18;1H[?12l[?25h[?25l[24;64H9,1 [19;1H[?12l[?25h[?25l[24;63H20,0-1[20;1H[?12l[?25h[?25l[24;64H1,1 [21;1H[?12l[?25h[?25l[24;64H2[22;1H[?12l[?25h[?25l[24;64H3,0-1[23;1H[?12l[?25h[?25l[1;23r[23;1H
1543[1;24r[23;1H[34m/*[m[24;63H[K[24;63H24,1[11C0%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1544[1;24r[23;1H[34m * Reset the interface and configure it for continuous operation[m[24;63H[K[24;63H25,1[11C1%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1545[1;24r[23;1H[34m */[m[24;63H[K[24;63H26,1[11C2%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1546[1;24r[23;1H[32mvoid[m phyResetContinuous([32mvoid[m) {[24;63H[K[24;63H27,1[11C2%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1547[1;24r[23;2H [32mint[m i;[24;63H[K[24;63H28,1[11C3%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1548[1;24r[24;63H[K[24;63H29,0-1[9C4%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1549[1;24r[23;2H [38;5;130mfor[m (i = [31m0[m; i < NUM_PORTS; i++) {[24;63H[K[24;63H30,1[11C5%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1550[1;24r[23;4H prev_good_pkts[i] = [31m0[m;[24;63H[K[24;63H31,1[11C5%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1551[1;24r[23;4H prev_bad_pkts[i] = [31m0[m;[24;63H[K[24;63H32,1[11C6%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1552[1;24r[23;2H }[24;63H[K[24;63H33,1[11C7%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1553[1;24r[24;63H[K[24;63H34,0-1[9C8%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1554[1;24r[23;2H [34m// Stop the test (and wait for the test to stop)[m[24;63H[K[24;63H35,1[11C8%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1555[1;24r[23;2H writeReg(&nf2, PHY_TEST_CTRL_REG, [31m0x0[m);[24;63H[K[24;63H36,1[11C9%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1556[1;24r[23;2H sleep([31m1[m);[24;63H[K[24;63H37,1[10C10%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1557[1;24r[24;63H[K[24;63H38,0-1[8C11%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1558[1;24r[23;2H writeReg(&nf2, PHY_TEST_PATTERN_REG, PHY_TEST_PATTERN_ENABLE_MASK);[24;63H[K[24;63H39,1[10C11%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1559[1;24r[24;63H[K[24;63H40,0-1[8C12%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1560[1;24r[23;2H [34m// Start the test[m[24;63H[K[24;63H41,1[10C13%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1561[1;24r[23;2H writeReg(&nf2, PHY_TEST_CTRL_REG, PHY_TEST_CTRL_REPEAT);[24;63H[K[24;63H42,1[10C14%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1562[1;24r[7;31H[106m{[23;1H}[m [34m// phyResetContinuous[m[24;63H[K[24;63H43,1[10C14%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1563[1;24r[6;31H{[22;1H}[24;63H[K[24;63H44,0-1[8C15%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1564[1;24r[23;1H[34m/*[m[24;63H[K[24;63H45,1[10C16%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1565[1;24r[23;1H[34m * Show the status of the SATA test when running in continuous mode[m[24;63H[K[24;63H46,1[10C17%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1566[1;24r[23;1H[34m *[m[24;63H[K[24;63H47,1[10C17%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1567[1;24r[23;1H[34m * Return -- boolean indicating success[m[24;63H[K[24;63H48,1[10C18%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1568[1;24r[23;1H[34m */[m[24;63H[K[24;63H49,1[10C19%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1569[1;24r[23;1H[32mint[m phyShowStatusContinuous([32mvoid[m) {[24;63H[K[24;63H50,1[10C20%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1570[1;24r[23;2H [32munsigned[m [32mint[m val;[24;63H[K[24;63H51,1[10C20%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1571[1;24r[23;2H [32munsigned[m [32mint[m port_status;[24;63H[K[24;63H52,1[10C21%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1572[1;24r[23;2H [32munsigned[m [32mint[m good_pkts;[24;63H[K[24;63H53,1[10C22%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1573[1;24r[23;2H [32munsigned[m [32mint[m bad_pkts;[24;63H[K[24;63H54,1[10C23%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1574[1;24r[24;63H[K[24;63H55,0-1[8C23%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1575[1;24r[23;2H [32mint[m i;[24;63H[K[24;63H56,1[10C24%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1576[1;24r[24;63H[K[24;63H57,0-1[8C25%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1577[1;24r[23;2H [32mint[m x, y;[24;63H[K[24;63H58,1[10C26%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1578[1;24r[24;63H[K[24;63H59,0-1[8C26%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1579[1;24r[23;2H [32mint[m good = [31m1[m;[24;63H[K[24;63H60,1[10C27%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1580[1;24r[24;63H[K[24;63H61,0-1[8C28%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1581[1;24r[23;2H [34m// Store the current screen position[m[24;63H[K[24;63H62,1[10C29%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1582[1;24r[23;2H getyx(stdscr, y, x);[24;63H[K[24;63H63,1[10C29%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1583[1;24r[24;63H[K[24;63H64,0-1[8C30%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1584[1;24r[23;2H [34m// Move down a line[m[24;63H[K[24;63H65,1[10C31%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1585[1;24r[23;2H move(y + [31m1[m, x);[24;63H[K[24;63H66,1[10C32%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1586[1;24r[24;63H[K[24;63H67,0-1[8C32%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1587[1;24r[23;2H [34m// Read the individual port registers[m[24;63H[K[24;63H68,1[10C33%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1588[1;24r[23;2H [38;5;130mfor[m (i = [31m0[m; i < NUM_PORTS; i++) {[24;63H[K[24;63H69,1[10C34%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1589[1;24r[23;4H printw([31m" Port [m[35m%d[m[31m:"[m, i + [31m1[m);[24;63H[K[24;63H70,1[10C35%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1590[1;24r[24;63H[K[24;63H71,0-1[8C35%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1591[1;24r[23;4H [34m// Start with the status register[m[24;63H[K[24;63H72,1[10C36%[23;1H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H readReg(&nf2, PHY_TEST_PHY_0_RX_STATUS_REG + i * PHY_TEST_PHY_GROUP_INST_OFFF[23;1HSET, &port_status);[24;63H[K[24;63H73,1[10C37%[22;1H[?12l[?25h[?25l[1;23r[23;1H
1592[1;24r[23;4H [38;5;130mif[m (port_status & [31m0x100[m) {[24;63H[K[24;63H74,1[10C38%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1593[1;24r[23;6H printw([31m" link w/ [m[35m%d[m[31m"[m, (port_status & [31m0xf0000[m) >> [31m16[m);[24;63H[K[24;63H75,1[10C39%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1594[1;24r[23;4H }[24;63H[K[24;63H76,1[10C40%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1595[1;24r[23;4H [38;5;130melse[m {[24;63H[K[24;63H77,1[10C40%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1596[1;24r[23;6H printw([31m" no link"[m);[24;63H[K[24;63H78,1[10C41%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1597[1;24r[23;6H good = [31m0[m;[24;63H[K[24;63H79,1[10C42%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1598[1;24r[23;4H }[24;63H[K[24;63H80,1[10C42%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1599[1;24r[24;63H[K[24;63H81,0-1[8C43%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1600[1;24r[23;4H [34m// Read the number of good/bad packets[m[24;63H[K[24;63H82,1[10C44%[23;1H[?12l[?25h[?25l[24;63H[K[24;1H:[?12l[?25hq[?25l[?12l[?25h
1601[?25l[24;1H[K[24;1H[?1l>[?12l[?25h[?1049l]0;root@node1-1: ~/netfpga/projects/selftest/swroot@node1-1:~/netfpga/projects/selftest/sw# vi selftest_phy.c [K./selftest -n
1602Found net device: nf2c0
1603CPCI Information
1604----------------
1605Version: 4 (rev 1)
1606
1607Device (Virtex) Information
1608---------------------------
1609Project directory: selftest
1610Project name: Selftest
1611Project description: NetFPGA selftest -- exercises all major subsystems of the board
1612
1613Device ID: 5
1614Version: 1.1.0
1615Built against CPCI version: 4 (rev 1)
1616
1617NetFPGA selftest 1.00 alpha
1618Running..... FAILED. Failing tests: PHY interface
1619]0;root@node1-1: ~/netfpga/projects/selftest/swroot@node1-1:~/netfpga/projects/selftest/sw# ./selftest -nvi selftest_phy.c
1620[?1049h[?1h=[1;24r[?12;25h[?12l[?25h[27m[m[H[2J[?25l[24;1H"selftest_phy.c" 157L, 3955C[>c[1;1H[34m/* ****************************************************************************
1621 * vim:set shiftwidth=2 softtabstop=2 expandtab:
1622 * $Id: selftest_phy.c 5971 2010-03-06 06:44:56Z grg $
1623 *
1624 * Module: selftest_phy.c
1625 * Project: NetFPGA selftest
1626 * Description: SATA selftest module
1627 *
1628 * Change history:
1629 *
1630 */[m
1631
1632[35m#include [m[31m"../lib/C/reg_defines_selftest.h"[m
1633[35m#include [m[31m"selftest.h"[m
1634[35m#include [m[31m"selftest_phy.h"[m
1635[35m#include [m[31m<curses.h>[m
1636[35m#include [m[31m<time.h>[m
1637
1638[35m#define NUM_PORTS [m[31m4[m
1639
1640[32mstatic[m [32mint[m prev_good_pkts[NUM_PORTS];
1641[32mstatic[m [32mint[m prev_bad_pkts[NUM_PORTS];[24;63H1,1[11CTop[1;1H[?12l[?25hP+q436f\P+q6b75\P+q6b64\P+q6b72\P+q6b6c\P+q2332\P+q2334\P+q2569\P+q2a37\P+q6b31\P+q6b32\[27m[m[H[2J[?25l[1;1H[34m/* ****************************************************************************
1642 * vim:set shiftwidth=2 softtabstop=2 expandtab:
1643 * $Id: selftest_phy.c 5971 2010-03-06 06:44:56Z grg $
1644 *
1645 * Module: selftest_phy.c
1646 * Project: NetFPGA selftest
1647 * Description: SATA selftest module
1648 *
1649 * Change history:
1650 *
1651 */[m
1652
1653[35m#include [m[31m"../lib/C/reg_defines_selftest.h"[m
1654[35m#include [m[31m"selftest.h"[m
1655[35m#include [m[31m"selftest_phy.h"[m
1656[35m#include [m[31m<curses.h>[m
1657[35m#include [m[31m<time.h>[m
1658
1659[35m#define NUM_PORTS [m[31m4[m
1660
1661[32mstatic[m [32mint[m prev_good_pkts[NUM_PORTS];
1662[32mstatic[m [32mint[m prev_bad_pkts[NUM_PORTS];[24;63H1,1[11CTop
1663"selftest_phy.c" 157L, 3955C[24;63H[K[24;63H1,1[11CTop[1;1H[?12l[?25hP+q6b33\[?25l[?12l[?25hP+q6b34\P+q6b35\P+q6b36\P+q6b37\P+q6b38\P+q6b39\P+q6b3b\P+q4631\P+q4632\P+q2531\P+q2638\P+q6b62\P+q6b49\P+q6b44\P+q6b68\P+q4037\P+q6b50\P+q6b4e\P+q4b31\P+q4b33\P+q4b34\P+q4b35\P+q6b42\[?25l[24;63H2[2;1H[?12l[?25h[?25l[24;63H3[3;1H[?12l[?25h[?25l[24;63H4[4;1H[?12l[?25h[?25l[24;63H5[5;1H[?12l[?25h[?25l[24;63H6[6;1H[?12l[?25h[?25l[24;63H7[7;1H[?12l[?25h[?25l[24;63H8[8;1H[?12l[?25h[?25l[24;63H9[9;1H[?12l[?25h[?25l[24;63H10,1[10;1H[?12l[?25h[?25l[24;64H1[11;1H[?12l[?25h[?25l[24;64H2,0-1[12;1H[?12l[?25h[?25l[24;64H3,1 [13;1H[?12l[?25h[?25l[24;64H4[14;1H[?12l[?25h[?25l[24;64H5[15;1H[?12l[?25h[?25l[24;64H6[16;1H[?12l[?25h[?25l[24;64H7[17;1H[?12l[?25h[?25l[24;64H8,0-1[18;1H[?12l[?25h[?25l[24;64H9,1 [19;1H[?12l[?25h[?25l[24;63H20,0-1[20;1H[?12l[?25h[?25l[24;64H1,1 [21;1H[?12l[?25h[?25l[24;64H2[22;1H[?12l[?25h[?25l[24;64H3,0-1[23;1H[?12l[?25h[?25l[1;23r[23;1H
1664[1;24r[23;1H[34m/*[m[24;1H[K[24;63H24,1[11C0%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1665[1;24r[23;1H[34m * Reset the interface and configure it for continuous operation[m[24;63H[K[24;63H25,1[11C1%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1666[1;24r[23;1H[34m */[m[24;63H[K[24;63H26,1[11C2%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1667[1;24r[23;1H[32mvoid[m phyResetContinuous([32mvoid[m) {[24;63H[K[24;63H27,1[11C2%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1668[1;24r[23;2H [32mint[m i;[24;63H[K[24;63H28,1[11C3%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1669[1;24r[24;63H[K[24;63H29,0-1[9C4%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1670[1;24r[23;2H [38;5;130mfor[m (i = [31m0[m; i < NUM_PORTS; i++) {[24;63H[K[24;63H30,1[11C5%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1671[1;24r[23;4H prev_good_pkts[i] = [31m0[m;[24;63H[K[24;63H31,1[11C5%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1672[1;24r[23;4H prev_bad_pkts[i] = [31m0[m;[24;63H[K[24;63H32,1[11C6%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1673[1;24r[23;2H }[24;63H[K[24;63H33,1[11C7%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1674[1;24r[24;63H[K[24;63H34,0-1[9C8%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1675[1;24r[23;2H [34m// Stop the test (and wait for the test to stop)[m[24;63H[K[24;63H35,1[11C8%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1676[1;24r[23;2H writeReg(&nf2, PHY_TEST_CTRL_REG, [31m0x0[m);[24;63H[K[24;63H36,1[11C9%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1677[1;24r[23;2H sleep([31m1[m);[24;63H[K[24;63H37,1[10C10%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1678[1;24r[24;63H[K[24;63H38,0-1[8C11%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1679[1;24r[23;2H writeReg(&nf2, PHY_TEST_PATTERN_REG, PHY_TEST_PATTERN_ENABLE_MASK);[24;63H[K[24;63H39,1[10C11%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1680[1;24r[24;63H[K[24;63H40,0-1[8C12%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1681[1;24r[23;2H [34m// Start the test[m[24;63H[K[24;63H41,1[10C13%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1682[1;24r[23;2H writeReg(&nf2, PHY_TEST_CTRL_REG, PHY_TEST_CTRL_REPEAT);[24;63H[K[24;63H42,1[10C14%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1683[1;24r[7;31H[106m{[23;1H}[m [34m// phyResetContinuous[m[24;63H[K[24;63H43,1[10C14%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1684[1;24r[6;31H{[22;1H}[24;63H[K[24;63H44,0-1[8C15%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1685[1;24r[23;1H[34m/*[m[24;63H[K[24;63H45,1[10C16%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1686[1;24r[23;1H[34m * Show the status of the SATA test when running in continuous mode[m[24;63H[K[24;63H46,1[10C17%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1687[1;24r[23;1H[34m *[m[24;63H[K[24;63H47,1[10C17%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1688[1;24r[23;1H[34m * Return -- boolean indicating success[m[24;63H[K[24;63H48,1[10C18%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1689[1;24r[23;1H[34m */[m[24;63H[K[24;63H49,1[10C19%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1690[1;24r[23;1H[32mint[m phyShowStatusContinuous([32mvoid[m) {[24;63H[K[24;63H50,1[10C20%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1691[1;24r[23;2H [32munsigned[m [32mint[m val;[24;63H[K[24;63H51,1[10C20%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1692[1;24r[23;2H [32munsigned[m [32mint[m port_status;[24;63H[K[24;63H52,1[10C21%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1693[1;24r[23;2H [32munsigned[m [32mint[m good_pkts;[24;63H[K[24;63H53,1[10C22%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1694[1;24r[23;2H [32munsigned[m [32mint[m bad_pkts;[24;63H[K[24;63H54,1[10C23%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1695[1;24r[24;63H[K[24;63H55,0-1[8C23%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1696[1;24r[23;2H [32mint[m i;[24;63H[K[24;63H56,1[10C24%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1697[1;24r[24;63H[K[24;63H57,0-1[8C25%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1698[1;24r[23;2H [32mint[m x, y;[24;63H[K[24;63H58,1[10C26%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1699[1;24r[24;63H[K[24;63H59,0-1[8C26%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1700[1;24r[23;2H [32mint[m good = [31m1[m;[24;63H[K[24;63H60,1[10C27%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1701[1;24r[24;63H[K[24;63H61,0-1[8C28%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1702[1;24r[23;2H [34m// Store the current screen position[m[24;63H[K[24;63H62,1[10C29%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1703[1;24r[23;2H getyx(stdscr, y, x);[24;63H[K[24;63H63,1[10C29%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1704[1;24r[24;63H[K[24;63H64,0-1[8C30%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1705[1;24r[23;2H [34m// Move down a line[m[24;63H[K[24;63H65,1[10C31%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1706[1;24r[23;2H move(y + [31m1[m, x);[24;63H[K[24;63H66,1[10C32%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1707[1;24r[24;63H[K[24;63H67,0-1[8C32%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1708[1;24r[23;2H [34m// Read the individual port registers[m[24;63H[K[24;63H68,1[10C33%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1709[1;24r[23;2H [38;5;130mfor[m (i = [31m0[m; i < NUM_PORTS; i++) {[24;63H[K[24;63H69,1[10C34%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1710[1;24r[23;4H printw([31m" Port [m[35m%d[m[31m:"[m, i + [31m1[m);[24;63H[K[24;63H70,1[10C35%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1711[1;24r[24;63H[K[24;63H71,0-1[8C35%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1712[1;24r[23;4H [34m// Start with the status register[m[24;63H[K[24;63H72,1[10C36%[23;1H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H readReg(&nf2, PHY_TEST_PHY_0_RX_STATUS_REG + i * PHY_TEST_PHY_GROUP_INST_OFFF[23;1HSET, &port_status);[24;63H[K[24;63H73,1[10C37%[22;1H[?12l[?25h[?25l[1;23r[23;1H
1713[1;24r[23;4H [38;5;130mif[m (port_status & [31m0x100[m) {[24;63H[K[24;63H74,1[10C38%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1714[1;24r[23;6H printw([31m" link w/ [m[35m%d[m[31m"[m, (port_status & [31m0xf0000[m) >> [31m16[m);[24;63H[K[24;63H75,1[10C39%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1715[1;24r[23;4H }[24;63H[K[24;63H76,1[10C40%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1716[1;24r[23;4H [38;5;130melse[m {[24;63H[K[24;63H77,1[10C40%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1717[1;24r[23;6H printw([31m" no link"[m);[24;63H[K[24;63H78,1[10C41%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1718[1;24r[23;6H good = [31m0[m;[24;63H[K[24;63H79,1[10C42%[23;1H[?12l[?25h[?25l[24;64H8[22;1H[?12l[?25h[?25l[24;64H7[21;1H[?12l[?25h[?25l[24;64H6[20;1H[?12l[?25h[?25l[24;64H5[19;1H[?12l[?25h[?25l[24;64H4[18;1H[?12l[?25h[?25l[24;64H3[16;1H[?12l[?25h[?25l[24;64H2[15;1H[?12l[?25h[?25l[24;64H1,0-1[14;1H[?12l[?25h[?25l[24;64H0,1 [13;1H[?12l[?25h[?25l[24;63H69[12;1H[?12l[?25h[?25l[24;64H8[11;1H[?12l[?25h[?25l[24;64H7,0-1[10;1H[?12l[?25h[?25l[24;64H6,1 [9;1H[?12l[?25h[?25l[24;64H5[8;1H[?12l[?25h[?25l[24;64H4,0-1[7;1H[?12l[?25h[?25l[24;64H3,1 [6;1H[?12l[?25h[?25l[24;64H2[5;1H[?12l[?25h[?25l[24;64H1,0-1[4;1H[?12l[?25h[?25l[24;64H0,1 [3;1H[?12l[?25h[?25l[24;63H59,0-1[2;1H[?12l[?25h[?25l[24;64H8,1 [1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H57,0-1[8C41%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32mint[m i;[24;63H[K[24;63H56,1[10C40%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H55,0-1[8C40%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32munsigned[m [32mint[m bad_pkts;[24;63H[K[24;63H54,1[10C39%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32munsigned[m [32mint[m good_pkts;[24;63H[K[24;63H53,1[10C38%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32munsigned[m [32mint[m port_status;[24;63H[K[24;63H52,1[10C37%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32munsigned[m [32mint[m val;[23;1H[94m@ [m[24;63H[K[24;63H51,1[10C37%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[32mint[m phyShowStatusContinuous([32mvoid[m) {[24;63H[K[24;63H50,1[10C36%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m */[m[24;63H[K[24;63H49,1[10C35%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m * Return -- boolean indicating success[m[24;63H[K[24;63H48,1[10C35%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m *[m[24;63H[K[24;63H47,1[10C34%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m * Show the status of the SATA test when running in continuous mode[m[24;63H[K[24;63H46,1[10C33%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m/*[m[24;63H[K[24;63H45,1[10C32%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H44,0-1[8C32%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H} [34m// phyResetContinuous[m[24;63H[K[24;63H43,1[10C31%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H writeReg(&nf2, PHY_TEST_CTRL_REG, PHY_TEST_CTRL_REPEAT);[24;63H[K[24;63H42,1[10C30%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [34m// Start the test[m[24;63H[K[24;63H41,1[10C29%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H40,0-1[8C29%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H writeReg(&nf2, PHY_TEST_PATTERN_REG, PHY_TEST_PATTERN_ENABLE_MASK);[24;63H[K[24;63H39,1[10C28%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H38,0-1[8C27%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H sleep([31m1[m);[24;63H[K[24;63H37,1[10C26%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H writeReg(&nf2, PHY_TEST_CTRL_REG, [31m0x0[m);[24;63H[K[24;63H36,1[10C26%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [34m// Stop the test (and wait for the test to stop)[m[24;63H[K[24;63H35,1[10C25%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H34,0-1[8C24%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H }[24;63H[K[24;63H33,1[10C23%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;4H prev_bad_pkts[i] = [31m0[m;[24;63H[K[24;63H32,1[10C23%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;4H prev_good_pkts[i] = [31m0[m;[24;63H[K[24;63H31,1[10C22%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [38;5;130mfor[m (i = [31m0[m; i < NUM_PORTS; i++) {[24;63H[K[24;63H30,1[10C21%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H29,0-1[8C20%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32mint[m i;[24;63H[K[24;63H28,1[10C20%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[32mvoid[m phyResetContinuous([32mvoid[m) {[24;63H[K[24;63H27,1[10C19%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m */[m[24;63H[K[24;63H26,1[10C18%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m * Reset the interface and configure it for continuous operation[m[24;63H[K[24;63H25,1[10C17%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m/*[m[24;63H[K[24;63H24,1[10C17%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H23,0-1[8C16%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[32mstatic[m [32mint[m prev_bad_pkts[NUM_PORTS];[24;63H[K[24;63H22,1[10C15%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[32mstatic[m [32mint[m prev_good_pkts[NUM_PORTS];[24;63H[K[24;63H21,1[10C14%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H20,0-1[8C14%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[35m#define NUM_PORTS [m[31m4[m[24;63H[K[24;63H19,1[10C13%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H18,0-1[8C12%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[35m#include [m[31m<time.h>[m[24;63H[K[24;63H17,1[10C11%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[35m#include [m[31m<curses.h>[m[24;63H[K[24;63H16,1[10C11%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[35m#include [m[31m"selftest_phy.h"[m[24;63H[K[24;63H15,1[10C10%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[35m#include [m[31m"selftest.h"[m[24;63H[K[24;63H14,1[11C9%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[35m#include [m[31m"../lib/C/reg_defines_selftest.h"[m[24;63H[K[24;63H13,1[11C8%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H12,0-1[9C8%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m */[m[24;63H[K[24;63H11,1[11C7%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m *[m[24;63H[K[24;63H10,1[11C6%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m * Change history:[m[24;63H[K[24;63H9,1[12C5%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m *[m[24;63H[K[24;63H8,1[12C5%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m * Description: SATA selftest module[m[24;63H[K[24;63H7,1[12C4%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m * Project: NetFPGA selftest[m[24;63H[K[24;63H6,1[12C3%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m * Module: selftest_phy.c[m[24;63H[K[24;63H5,1[12C2%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m *[m[24;63H[K[24;63H4,1[12C2%[1;1H[?12l[?25h[?25l[24;63H[K[24;1H:[?12l[?25he[?25l[?12l[?25h[?25l [?12l[?25hs[?25l[?12l[?25he[?25l[?12l[?25hl[?25l[?12l[?25hf[?25l[?12l[?25ht[?25l[?12l[?25he[?25l[?12l[?25hs[?25l[?12l[?25ht[?25l[?12l[?25h.[?25l[?12l[?25hh[?25l[?12l[?25h
1719[?25l"selftest.h" 38L, 859C[1;1H[34m/* ****************************************************************************
1720 * vim:set shiftwidth=2 softtabstop=2 expandtab:
1721 * $Id: selftest.h 2016 2007-07-24 20:24:15Z grg $[m[4;3H[K[5;3H[34m Module: selftest.h
1722 * Project: NetFPGA selftest software
1723 * Description:[m[8;3H[K[9;1H[34m * Change history:
1724 *[m[10;3H[K[11;1H[34m */[m[11;4H[K[12;1H[K[13;2H[35mifndef _SELFTEST_H
1725#define _SELFTEST_H [m[31m1[m
1726
1727[34m/*[m[16;3H[K[17;1H[34m * The NF2 structure for all files to use
1728 */[m[18;4H[K[19;1H[32mextern[m [32mstruct[m nf2device nf2;[19;29H[K[22;3H[34m Define a structure for a test interface[m[22;43H[K[23;3H[K[24;63H1,1[11CTop[1;1H[?12l[?25h[?25l[24;63H2[2;1H[?12l[?25h[?25l[24;63H3[3;1H[?12l[?25h[?25l[24;63H4[4;1H[?12l[?25h[?25l[24;63H5[5;1H[?12l[?25h[?25l[24;63H6[6;1H[?12l[?25h[?25l[24;63H7[7;1H[?12l[?25h[?25l[24;63H8[8;1H[?12l[?25h[?25l[24;63H9[9;1H[?12l[?25h[?25l[24;63H10,1[10;1H[?12l[?25h[?25l[24;64H1[11;1H[?12l[?25h[?25l[24;64H2,0-1[12;1H[?12l[?25h[?25l[24;64H3,1 [13;1H[?12l[?25h[?25l[24;64H4[14;1H[?12l[?25h[?25l[24;64H5,0-1[15;1H[?12l[?25h[?25l[24;64H6,1 [16;1H[?12l[?25h[?25l[24;64H7[17;1H[?12l[?25h[?25l[24;64H8[18;1H[?12l[?25h[?25l[24;64H9[19;1H[?12l[?25h[?25l[24;63H20,0-1[20;1H[?12l[?25h[?25l[24;64H1,1 [21;1H[?12l[?25h[?25l[24;64H2[22;1H[?12l[?25h[?25l[24;64H3[23;1H[?12l[?25h[?25l[1;23r[23;1H
1729[1;24r[23;1H[34m * Fields:[m[24;1H[K[24;63H24,1[11C6%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1730[1;24r[23;1H[34m * name : module name[m[24;63H[K[24;63H25,1[10C13%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1731[1;24r[23;1H[34m * reset_continuous : reset the interface and prepare for continuous testing[m[24;63H[K[24;63H26,1[10C20%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1732[1;24r[23;1H[34m * mode[m[24;63H[K[24;63H27,1[10C26%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1733[1;24r[23;1H[34m * show_status_continuous : show the status of the continuous test[m[24;63H[K[24;63H28,1[10C33%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1734[1;24r[23;1H[34m */[m[24;63H[K[24;63H29,1[10C40%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1735[1;24r[23;1H[32mstruct[m test_module {[24;63H[K[24;63H30,1[10C46%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1736[1;24r[23;2H [32mchar[m *name;[24;63H[K[24;63H31,1[10C53%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1737[1;24r[23;2H [32mvoid[m (*reset_continuous) ([32mvoid[m);[24;63H[K[24;63H32,1[10C60%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1738[1;24r[23;2H [32mint[m (*show_status_continuous) ([32mvoid[m);[24;63H[K[24;63H33,1[10C66%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1739[1;24r[23;2H [32mvoid[m (*stop_continuous) ([32mvoid[m);[24;63H[K[24;63H34,1[10C73%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1740[1;24r[23;2H [32mint[m (*get_result) ([32mvoid[m);[24;63H[K[24;63H35,1[10C80%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1741[1;24r[17;20H[106m{[23;1H}[m;[24;63H[K[24;63H36,1[10C86%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1742[1;24r[16;20H{[22;1H}[24;63H[K[24;63H37,0-1[8C93%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1743[1;24r[23;1H[35m#endif[m[24;63H[K[24;63H38,1[10CBot[23;1H[?12l[?25h[?25l[24;64H7,0-1[22;1H[?12l[?25h[?25l[15;20H[106m{[21;1H}[m[24;64H6,1 [21;1H[?12l[?25h[?25l[15;20H{[21;1H}[24;64H5[20;1H[?12l[?25h[?25l[24;64H4[19;1H[?12l[?25h[?25l[24;63H[K[24;1H:[?12l[?25hb[?25l[?12l[?25hd[?25l[?12l[?25h
1744[?25l"selftest_phy.c" 157L, 3955C[1;3H[34m ****************************************************************************
1745 * vim:set shiftwidth=2 softtabstop=2 expandtab:
1746 * $Id: selftest_phy.c 5971 2010-03-06 06:44:56Z grg $
1747 *[m[4;3H[K[5;1H[34m * Module: selftest_phy.c
1748 * Project: NetFPGA selftest
1749 * Description: SATA selftest module[m[7;37H[K[9;3H[34m Change history:[m[10;3H[K[11;2H[34m*/[m[11;4H[K[12;1H[K[13;1H[35m#include [m[31m"../lib/C/reg_defines_selftest.h"[m[13;43H[K[14;1H[35m#include [m[31m"selftest.h"[m
1750[35m#include [m[31m"selftest_phy.h"[m
1751[35m#include [m[31m<curses.h>[m
1752[35m#include [m[31m<time.h>[m[17;18H[K[18;3H[K[19;1H[35m#define NUM_PORTS [m[31m4[m[19;20H[K[20;3H[K[21;1H[32mstatic[m [32mint[m prev_good_pkts[NUM_PORTS];
1753[32mstatic[m [32mint[m prev_bad_pkts[NUM_PORTS];[23;1H[K[24;63H4,1[11CTop[4;1H[?12l[?25h[?25l[24;1H[K[24;1H:[?12l[?25he[?25l[?12l[?25h[?25l [?12l[?25hs[?25l[?12l[?25he[?25l[?12l[?25hl[?25l[?12l[?25hf[?25l[?12l[?25h[?25l[24;1H[K[24;63H4,1[11CTop[4;1H[?12l[?25h[?25l[24;63H5[5;1H[?12l[?25h[?25l[24;63H6[6;1H[?12l[?25h[?25l[24;63H7[7;1H[?12l[?25h[?25l[24;63H8[8;1H[?12l[?25h[?25l[24;63H9[9;1H[?12l[?25h[?25l[24;63H10,1[10;1H[?12l[?25h[?25l[24;64H1[11;1H[?12l[?25h[?25l[24;64H2,0-1[12;1H[?12l[?25h[?25l[24;64H3,1 [13;1H[?12l[?25h[?25l[24;64H4[14;1H[?12l[?25h[?25l[24;64H5[15;1H[?12l[?25h[?25l[24;64H6[16;1H[?12l[?25h[?25l[24;64H7[17;1H[?12l[?25h[?25l[24;64H8,0-1[18;1H[?12l[?25h[?25l[24;64H9,1 [19;1H[?12l[?25h[?25l[24;63H20,0-1[20;1H[?12l[?25h[?25l[24;63H19,1 [19;1H[?12l[?25h[?25l[24;66H2[19;2H[?12l[?25h[?25l[24;66H9[19;9H[?12l[?25h[?25l[24;1H/\<NUM_PORTS\>[24;63H[K[24;1H[62C21,27[9CTop[21;27H[?12l[?25h[?25l[24;63H[K[24;1H[62C22,26[9CTop[22;26H[?12l[?25h[?25l[24;63H[K[24;1H[1;23r[1;1H[7M[1;24r[17;1H[34m/*
1754 * Reset the interface and configure it for continuous operation
1755 */[m
1756[32mvoid[m phyResetContinuous([32mvoid[m) {
1757 [32mint[m i;
1758
1759 [38;5;130mfor[m (i = [31m0[m; i < NUM_PORTS; i++) {[24;1H[K[24;63H30,19[10C5%[23;19H[?12l[?25h[?25l[1;23r[23;1H
1760[1;24r[23;4H prev_good_pkts[106m[[mi[106m][m = [31m0[m;[24;63H[K[24;63H31,19[10C5%[23;19H[?12l[?25h[?25l[1;23r[23;1H
1761[1;24r[22;19H[i]
1762 prev_bad_pkts[i] = [31m0[m;[24;63H[K[24;63H32,19[10C6%[23;19H[?12l[?25h[?25l[1;23r[23;1H
1763[1;24r[20;35H[106m{[m[23;2H [106m}[m[24;63H[K[24;63H33,3[11C7%[23;3H[?12l[?25h[?25l[1;23r[23;1H
1764[1;24r[19;35H{[22;3H}[24;63H[K[24;63H34,0-1[9C8%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1765[1;24r[23;2H [34m// Stop the test (and wait for the test to stop)[m[24;63H[K[24;63H35,19[10C8%[23;19H[?12l[?25h[?25l[1;23r[23;1H
1766[1;24r[23;2H writeReg(&nf2, PHY_TEST_CTRL_REG, [31m0x0[m);[24;63H[K[24;63H36,19[10C9%[23;19H[?12l[?25h[?25l
1767/\<NUM_PORTS\>[24;63H[K[24;1H[27m[m[H[2J[1;2H [32mint[m x, y;
1768
1769 [32mint[m good = [31m1[m;
1770
1771 [34m// Store the current screen position[m
1772 getyx(stdscr, y, x);
1773
1774 [34m// Move down a line[m
1775 move(y + [31m1[m, x);
1776
1777 [34m// Read the individual port registers[m
1778 [38;5;130mfor[m (i = [31m0[m; i < NUM_PORTS; i++) {
1779 printw([31m" Port [m[35m%d[m[31m:"[m, i + [31m1[m);[15;4H [34m// Start with the status register[m
1780 readReg(&nf2, PHY_TEST_PHY_0_RX_STATUS_REG + i * PHY_TEST_PHY_GROUP_INST_OFFF[17;1HSET, &port_status);
1781 [38;5;130mif[m (port_status & [31m0x100[m) {[19;6H printw([31m" link w/ [m[35m%d[m[31m"[m, (port_status & [31m0xf0000[m) >> [31m16[m);
1782 }
1783 [38;5;130melse[m {[22;6H printw([31m" no link"[m);[23;6H good = [31m0[m;[24;63H69,19[9C42%[12;19H[?12l[?25h[?25l[24;64H8[11;19H[?12l[?25h[?25l[24;64H7,0-1[10;1H[?12l[?25h[?25l[24;64H6,17 [9;17H[?12l[?25h[?25l[24;64H5,19[8;19H[?12l[?25h[?25l[24;64H4,0-1[7;1H[?12l[?25h[?25l[24;64H3,19 [6;19H[?12l[?25h[?25l[24;64H2[5;19H[?12l[?25h[?25l[24;64H1,0-1[4;1H[?12l[?25h[?25l[24;64H0,15 [3;15H[?12l[?25h[?25l[24;63H59,0-1[2;1H[?12l[?25h[?25l[24;64H8,11 [1;11H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H57,0-1[8C41%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32mint[m i;[24;63H[K[24;63H56,8[10C40%[1;8H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H55,0-1[8C40%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32munsigned[m [32mint[m bad_pkts;[24;63H[K[24;63H54,19[9C39%[1;19H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32munsigned[m [32mint[m good_pkts;[24;63H[K[24;63H53,19[9C38%[1;19H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32munsigned[m [32mint[m port_status;[24;63H[K[24;63H52,19[9C37%[1;19H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32munsigned[m [32mint[m val;[23;1H[94m@ [m[24;63H[K[24;63H51,19[9C37%[1;19H[?12l[?25h[?25l[24;64H2[2;19H[?12l[?25h[?25l[24;64H3[3;19H[?12l[?25h[?25l[24;64H4[4;19H[?12l[?25h[?25l[24;64H5,0-1[5;1H[?12l[?25h[?25l[24;64H6,8 [6;8H[?12l[?25h[?25l[24;64H7,0-1[7;1H[?12l[?25h[?25l[24;64H8,11 [8;11H[?12l[?25h[?25l[24;64H9,0-1[9;1H[?12l[?25h[?25l[24;63H60,15 [10;15H[?12l[?25h[?25l[24;64H1,0-1[11;1H[?12l[?25h[?25l[24;64H2,19 [12;19H[?12l[?25h[?25l[24;64H3[13;19H[?12l[?25h[?25l[24;64H4,0-1[14;1H[?12l[?25h[?25l[24;64H5,19 [15;19H[?12l[?25h[?25l[24;64H6,17[16;17H[?12l[?25h[?25l[24;64H7,0-1[17;1H[?12l[?25h[?25l[24;64H8,19 [18;19H[?12l[?25h[?25l[24;64H9[19;19H[?12l[?25h[?25l[24;63H70[20;19H[?12l[?25h[?25l[24;64H1,0-1[21;1H[?12l[?25h[?25l[24;64H2,19 [22;19H[?12l[?25h[?25l[1;23r[23;1H
1784[1;24r[22;1H readReg(&nf2, PHY_TEST_PHY_0_RX_STATUS_REG + i * PHY_TEST_PHY_GROUP_INST_OFFF[23;1HSET, &port_status);[24;63H[K[24;63H73,19[9C37%[22;19H[?12l[?25h[?25l[1;23r[23;1H
1785[1;24r[23;4H [38;5;130mif[m (port_status & [31m0x100[m) {[24;63H[K[24;63H74,19[9C38%[23;19H[?12l[?25h[?25l[1;23r[23;1H
1786[1;24r[23;6H printw([31m" link w/ [m[35m%d[m[31m"[m, (port_status & [31m0xf0000[m) >> [31m16[m);[24;63H[K[24;63H75,19[9C39%[23;19H[?12l[?25h[?25l[1;23r[23;1H
1787[1;24r[21;30H[106m{[m[23;4H [106m}[m[24;63H[K[24;63H76,5[10C40%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1788[1;24r[20;30H{[22;5H}
1789 [38;5;130melse[m {[24;63H[K[24;63H77,10[9C40%[23;10H[?12l[?25h[?25l[1;23r[23;1H
1790[1;24r[23;6H printw([31m" no link"[m);[24;63H[K[24;63H78,19[9C41%[23;19H[?12l[?25h[?25l[1;23r[23;1H
1791[1;24r[23;6H good = [31m0[m;[24;63H[K[24;63H79,15[9C42%[23;15H[?12l[?25h[?25l[1;23r[23;1H
1792[1;24r[20;10H[106m{[m[23;4H [106m}[m[24;63H[K[24;63H80,5[10C42%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1793[1;24r[19;10H{[22;5H}[24;63H[K[24;63H81,0-1[8C43%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1794[1;24r[23;4H [34m// Read the number of good/bad packets[m[24;63H[K[24;63H82,19[9C44%[23;19H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H readReg(&nf2, PHY_TEST_PHY_0_RX_GOOD_PKT_CNT_REG + i * PHY_TEST_PHY_GROUP_INN[23;1HST_OFFSET, &good_pkts);[24;63H[K[24;63H83,19[9C45%[22;19H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H readReg(&nf2, PHY_TEST_PHY_0_RX_ERR_PKT_CNT_REG + i * PHY_TEST_PHY_GROUP_INN[23;1HST_OFFSET, &bad_pkts);[24;63H[K[24;63H84,19[9C46%[22;19H[?12l[?25h[?25l[1;23r[23;1H
1795[1;24r[23;4H printw([31m" Good: [m[35m%d[m[31m Bad: [m[35m%d[m[31m"[m, good_pkts, bad_pkts);[24;63H[K[24;63H85,19[9C47%[23;19H[?12l[?25h[?25l[1;23r[23;1H
1796[1;24r[24;63H[K[24;63H86,0-1[8C48%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1797[1;24r[23;4H printw([31m"[m[35m\n[m[31m"[m);[24;63H[K[24;63H87,17[9C48%[23;17H[?12l[?25h[?25l[1;23r[23;1H
1798[1;24r[24;63H[K[24;63H88,0-1[8C49%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1799[1;24r[23;4H [34m// Verify if we should reset the counters[m[24;63H[K[24;63H89,19[9C50%[23;19H[?12l[?25h[?25l[1;23r[23;1H
1800[1;24r[23;4H [34m/*if ((port_status & 0x1100) == 0x1100) {[m[24;63H[K[24;63H90,19[9C51%[23;19H[?12l[?25h[?25l[1;23r[23;1H
1801[1;24r[23;1H[34m // Only reset if the number of good packets has incremented but the bad[m[24;63H[K[24;63H91,19[9C51%[23;19H[?12l[?25h[?25l[1;23r[23;1H
1802[1;24r[23;1H[34m // packets have remained the same[m[24;63H[K[24;63H92,19[9C52%[23;19H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;1H[34m if (bad_pkts == prev_bad_pkts[i] && good_pkts != prev_good_pkts[i]) {
1803 writeReg(&nf2, PHY_TEST_PHY_0_RX_CTRL_REG + i * PHY_TEST_PHY_GROUP_INST_[m[23;1H[94m@ [m[24;63H[K[24;63H93,19[9C53%[22;19H[?12l[?25h[?25l[1;23r[23;1H
1804[1;24r[22;1H[34m writeReg(&nf2, PHY_TEST_PHY_0_RX_CTRL_REG + i * PHY_TEST_PHY_GROUP_INST__[23;1HOFFSET, 0x3);[m[24;63H[K[24;63H94,19[9C54%[22;19H[?12l[?25h[?25l[1;23r[23;1H
1805[1;24r[20;75H[34m[106m{[m
1806
1807
1808[34m [m[34m[106m}[m[24;63H[K[24;63H95,7[10C54%[23;7H[?12l[?25h[?25l[1;23r[23;1H
1809[1;24r[19;75H[34m{[22;7H}[m[24;63H[K[24;63H96,0-1[8C55%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1810[1;24r[23;1H[34m // Update the counters[m[24;63H[K[24;63H97,19[9C56%[23;19H[?12l[?25h[?25l[1;23r[23;1H
1811[1;24r[23;1H[34m prev_bad_pkts[i] = bad_pkts;[m[24;63H[K[24;63H98,19[9C56%[23;19H[?12l[?25h[?25l[1;23r[23;1H
1812[1;24r[23;1H[34m prev_good_pkts[i] = good_pkts;[m[24;63H[K[24;63H99,19[9C57%[23;19H[?12l[?25h[?25l[1;23r[23;1H
1813[1;24r[23;1H[34m }*/[m[24;63H[K[24;63H100,7[9C58%[23;7H[?12l[?25h[?25l[1;23r[23;1H
1814[1;24r[24;63H[K[24;63H101,0-1[7C59%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1815[1;24r[23;4H [34m// Update the good flag[m[24;63H[K[24;63H102,19[8C59%[23;19H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H [38;5;130mif[m (bad_pkts != [31m0[m)[23;6H good = [31m0[m;[24;63H[K[24;63H103,19[8C61%[22;19H[?12l[?25h[?25l[24;65H4,15[23;15H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;2H }[24;63H[K[24;63H105,3[9C62%[22;3H[?12l[?25h[?25l[24;65H6,0-1[23;1H[?12l[?25h[?25l[1;23r[23;1H
1816[1;24r[23;2H [34m// Print overall success/failure[m[24;63H[K[24;63H107,19[8C62%[23;19H[?12l[?25h[?25l[1;23r[23;1H
1817[1;24r[23;2H move(y, x);[24;63H[K[24;63H108,13[8C63%[23;13H[?12l[?25h[?25l[1;23r[23;1H
1818[1;24r[23;2H printw([31m"PHY test: [m[35m%s[m[31m"[m, good ? [31m"pass"[m : [31m"fail"[m);[24;63H[K[24;63H109,19[8C64%[23;19H[?12l[?25h[?25l[1;23r[23;1H
1819[1;24r[23;2H move(y + [31m1[m + NUM_PORTS, x);[24;63H[K[24;63H110,19[8C65%[23;19H[?12l[?25h[?25l[1;23r[23;1H
1820[1;24r[24;63H[K[24;63H111,0-1[7C65%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1821[1;24r[23;2H [38;5;130mreturn[m good;[24;63H[K[24;63H112,14[8C66%[23;14H[?12l[?25h[?25l[1;23r[23;1H
1822[1;24r[23;1H} [34m// phyShowStatusContinuous[m[24;63H[K[24;63H113,19[8C67%[23;19H[?12l[?25h[?25l[1;23r[23;1H
1823[1;24r[24;63H[K[24;63H114,0-1[7C68%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1824[1;24r[23;1H[34m/*[m[24;63H[K[24;63H115,2[9C68%[23;2H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;1H[34m * Stop the interface
1825 */[m[24;63H[K[24;63H116,19[8C70%[22;19H[?12l[?25h[?25l[24;65H7,3 [23;3H[?12l[?25h[?25l[1;23r[23;1H
1826[1;24r[23;1H[32mvoid[m phyStopContinuous([32mvoid[m) {[24;63H[K[24;63H118,19[8C70%[23;19H[?12l[?25h[?25l[1;23r[23;1H
1827[1;24r[23;2H [34m// Stop the test (and wait for the test to stop)[m[24;63H[K[24;63H119,19[8C71%[23;19H[?12l[?25h[?25l[1;23r[23;1H
1828[1;24r[23;2H writeReg(&nf2, PHY_TEST_CTRL_REG, [31m0x00000000[m);[24;63H[K[24;63H120,19[8C72%[23;19H[?12l[?25h[?25l[1;23r[23;1H
1829[1;24r[23;1H} [34m// phyStopContinuous[m[24;63H[K[24;63H121,19[8C73%[23;19H[?12l[?25h[?25l[1;23r[23;1H
1830[1;24r[24;63H[K[24;63H122,0-1[7C73%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1831[1;24r[23;1H[34m/*[m[24;63H[K[24;63H123,2[9C74%[23;2H[?12l[?25h[?25l[1;23r[23;1H
1832[1;24r[23;1H[34m * Get the result of the test[m[24;63H[K[24;63H124,19[8C75%[23;19H[?12l[?25h[?25l[1;23r[23;1H
1833[1;24r[23;1H[34m *[m[24;63H[K[24;63H125,2[9C76%[23;2H[?12l[?25h[?25l[1;23r[23;1H
1834[1;24r[23;1H[34m * Return -- boolean indicating success[m[24;63H[K[24;63H126,19[8C76%[23;19H[?12l[?25h[?25l[1;23r[23;1H
1835[1;24r[23;1H[34m */[m[24;63H[K[24;63H127,3[9C77%[23;3H[?12l[?25h[?25l[1;23r[23;1H
1836[1;24r[23;1H[32mint[m phyGetResult([32mvoid[m) {[24;63H[K[24;63H128,19[8C78%[23;19H[?12l[?25h[?25l[1;23r[23;1H
1837[1;24r[23;2H [32munsigned[m [32mint[m val;[24;63H[K[24;63H129,19[8C79%[23;19H[?12l[?25h[?25l[1;23r[23;1H
1838[1;24r[23;2H [32munsigned[m [32mint[m port_status;[24;63H[K[24;63H130,19[8C79%[23;19H[?12l[?25h[?25l[1;23r[23;1H
1839[1;24r[23;2H [32munsigned[m [32mint[m good_pkts;[24;63H[K[24;63H131,19[8C80%[23;19H[?12l[?25h[?25l[1;23r[23;1H
1840[1;24r[23;2H [32munsigned[m [32mint[m bad_pkts;[24;63H[K[24;63H132,19[8C81%[23;19H[?12l[?25h[?25l[1;23r[23;1H
1841[1;24r[24;63H[K[24;63H133,0-1[7C82%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1842[1;24r[23;2H [32mint[m i;[24;63H[K[24;63H134,8[9C82%[23;8H[?12l[?25h[?25l[1;23r[23;1H
1843[1;24r[24;63H[K[24;63H135,0-1[7C83%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1844[1;24r[23;2H [32mint[m good = [31m1[m;[24;63H[K[24;63H136,15[8C84%[23;15H[?12l[?25h[?25l[1;23r[23;1H
1845[1;24r[24;63H[K[24;63H137,0-1[7C85%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1846[1;24r[23;2H [34m// Read the individual port registers[m[24;63H[K[24;63H138,19[8C85%[23;19H[?12l[?25h[?25l[1;23r[23;1H
1847[1;24r[23;2H [38;5;130mfor[m (i = [31m0[m; i < NUM_PORTS; i++) {[24;63H[K[24;63H139,19[8C86%[23;19H[?12l[?25h[?25l[1;23r[23;1H
1848[1;24r[23;4H [34m// Start with the status register[m[24;63H[K[24;63H140,19[8C87%[23;19H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H readReg(&nf2, PHY_TEST_PHY_0_RX_STATUS_REG + i * PHY_TEST_PHY_GROUP_INST_OFFF[23;1HSET, &port_status);[24;63H[K[24;63H141,19[8C88%[22;19H[?12l[?25h[?25l[1;23r[23;1H
1849[1;24r[23;4H [38;5;130mif[m ((port_status & [31m0x100[m) == [31m0[m) {[24;63H[K[24;63H142,19[8C88%[23;19H[?12l[?25h[?25l[1;23r[23;1H
1850[1;24r[23;6H good = [31m0[m;[24;63H[K[24;63H143,15[8C89%[23;15H[?12l[?25h[?25l[1;23r[23;1H
1851[1;24r[21;37H[106m{[m[23;4H [106m}[m[24;63H[K[24;63H144,5[9C90%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1852[1;24r[20;37H{[22;5H}[24;63H[K[24;63H145,0-1[7C91%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1853[1;24r[23;4H [34m// Read the number of good/bad packets[m[24;63H[K[24;63H146,19[8C91%[23;19H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H readReg(&nf2, PHY_TEST_PHY_0_RX_GOOD_PKT_CNT_REG + i * PHY_TEST_PHY_GROUP_INN[23;1HST_OFFSET, &good_pkts);[24;63H[K[24;63H147,19[8C92%[22;19H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H readReg(&nf2, PHY_TEST_PHY_0_RX_ERR_PKT_CNT_REG + i * PHY_TEST_PHY_GROUP_INSS[23;1HT_OFFSET, &bad_pkts);[24;63H[K[24;63H148,19[8C93%[22;19H[?12l[?25h[?25l[1;23r[23;1H
1854[1;24r[24;63H[K[24;63H149,0-1[7C94%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1855[1;24r[23;4H [34m// Update the good flag[m[24;63H[K[24;63H150,19[8C94%[23;19H[?12l[?25h[?25l[1;23r[23;1H
1856[1;24r[23;4H [38;5;130mif[m (bad_pkts != [31m0[m) {[24;63H[K[24;63H151,19[8C95%[23;19H[?12l[?25h[?25l[1;23r[23;1H
1857[1;24r[23;6H good = [31m0[m;[24;63H[K[24;63H152,15[8C96%[23;15H[?12l[?25h[?25l[1;23r[23;1H
1858[1;24r[21;24H[106m{[m[23;4H [106m}[m[24;63H[K[24;63H153,5[9C97%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1859[1;24r[5;35H[106m{[m[20;24H{[22;5H}
1860 [106m}[m[24;63H[K[24;63H154,3[9C97%[23;3H[?12l[?25h[?25l[1;23r[23;1H
1861[1;24r[4;35H{[22;3H}[24;63H[K[24;63H155,0-1[7C98%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1862[1;24r[23;2H [38;5;130mreturn[m good;[24;63H[K[24;63H156,14[8C99%[23;14H[?12l[?25h[?25l[1;23r[23;1H
1863[1;24r[23;1H} [34m// phyGetResult[m[24;63H[K[24;63H157,17[8CBot[23;17H[?12l[?25h[?25l[24;65H6,14[22;14H[?12l[?25h[?25l[24;65H5,0-1[21;1H[?12l[?25h[?25l[2;35H[106m{[20;3H}[m[24;65H4,3 [20;3H[?12l[?25h[?25l[2;35H{[17;24H[106m{[19;5H}[m
1864 }[24;65H3,5[19;5H[?12l[?25h[?25l[17;24H{[19;5H}[24;65H2,15[18;15H[?12l[?25h[?25l[24;63H[K[24;1H:[?12l[?25he[?25l[?12l[?25h[?25l [?12l[?25hs[?25l[?12l[?25he[?25l[?12l[?25hl[?25l[?12l[?25hf[?25l[?12l[?25ht[?25l[?12l[?25he[?25l[?12l[?25hs[?25l[?12l[?25ht[?25l[?12l[?25h.[?25l[?12l[?25hc[?25l[?12l[?25h
1865[?25l"selftest.c" 512L, 10370C[1;1H[34m/* ****************************************************************************
1866 * vim:set shiftwidth=2 softtabstop=2 expandtab:
1867 * $Id: selftest.c 6010 2010-03-14 08:24:50Z grg $
1868 *[m[4;5H[K[5;1H[34m * Module: selftest.c
1869 * Project: NetFPGA 2.1[m[6;24H[K[7;1H[34m * Description: Interface with the self-test modules on the NetFPGA
1870 * to help diagnose problems.
1871 *
1872 * Change history:[m[10;19H[K[11;1H[34m *[m[11;5H[K[12;1H[34m */[m[12;4H[K[13;5H[K[14;1H[35m#include [m[31m<stdio.h>[m[14;19H[K[15;1H[35m#include [m[31m<stdlib.h>[m
1873[35m#include [m[31m<unistd.h>[m[16;20H[K[17;5H[K[18;1H[35m#include [m[31m<sys/types.h>[m
1874[35m#include [m[31m<sys/stat.h>[m
1875[35m#include [m[31m<sys/socket.h>[m
1876[35m#include [m[31m<sys/time.h>[m[22;3H[K[23;1H[35m#include [m[31m<net/if.h>[m[24;63H1,1[11CTop[1;1H[?12l[?25h[?25l[24;1H/\<NUM_PORTS\>[24;15H[K[24;1H[31msearch hit BOTTOM, continuing at TOP[m
1877[97m[41mE486: Pattern not found: \<NUM_PORTS\>[m[24C1,1[11CTop[1;1H[?12l[?25h[?25l[24;1H[K[24;1H/[?12l[?25hP[?25l[?12l[?25hH[?25l[?12l[?25hY[?25l[?12l[?25h
1878[?25l[27m[m[H[2J[1;4H regStopContinuous,
1879 regGetResult,
1880 },
1881 {
1882 [31m"MDIO interface"[m,
1883 mdioResetContinuous,
1884 mdioShowStatusContinuous,
1885 mdioStopContinuous,
1886 mdioGetResult,
1887 },
1888 {
1889 [31m"PHY interface"[m,
1890 phyResetContinuous,
1891 phyShowStatusContinuous,
1892 phyStopContinuous,
1893 phyGetResult,
1894 },
1895 {
1896 [31m"DRAM controller"[m,
1897 dramResetContinuous,
1898 dramShowStatusContinuous,
1899 dramStopContinuous,
1900 dramGetResult,[24;63H110,6[9C20%[12;6H[?12l[?25h[?25l[24;65H1[13;6H[?12l[?25h[?25l[24;67H5[13;5H[?12l[?25h[?25l[24;65H2[14;5H[?12l[?25h[?25l[24;65H3[15;5H[?12l[?25h[?25l[24;65H4[16;5H[?12l[?25h[?25l[24;65H5,4[17;4H[?12l[?25h[?25l[24;65H6,3[18;3H[?12l[?25h[?25l[24;65H7,5[19;5H[?12l[?25h[?25l[24;65H8[20;5H[?12l[?25h[?25l[24;65H9[21;5H[?12l[?25h[?25l[24;64H20[22;5H[?12l[?25h[?25l[24;65H1[23;5H[?12l[?25h[?25l[1;23r[23;1H
1901[1;24r[23;2H },[24;63H[K[24;63H122,4[9C20%[23;4H[?12l[?25h[?25l[1;23r[23;1H
1902[1;24r[23;2H {[24;63H[K[24;63H123,3[9C20%[23;3H[?12l[?25h[?25l[1;23r[23;1H
1903[1;24r[23;4H [31m"SRAM controller"[m,[24;63H[K[24;63H124,5[9C20%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1904[1;24r[23;4H sramResetContinuous,[24;63H[K[24;63H125,5[9C20%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1905[1;24r[23;4H sramShowStatusContinuous,[24;63H[K[24;63H126,5[9C21%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1906[1;24r[23;4H sramStopContinuous,[24;63H[K[24;63H127,5[9C21%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1907[1;24r[23;4H sramGetResult,[24;63H[K[24;63H128,5[9C21%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1908[1;24r[23;2H },[24;63H[K[24;63H129,4[9C21%[23;4H[?12l[?25h[?25l[1;23r[23;1H
1909[1;24r[23;2H {[24;63H[K[24;63H130,3[9C21%[23;3H[?12l[?25h[?25l[1;23r[23;1H
1910[1;24r[23;4H [31m"SATA controller"[m,[24;63H[K[24;63H131,5[9C22%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1911[1;24r[23;4H serialResetContinuous,[24;63H[K[24;63H132,5[9C22%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1912[1;24r[23;4H serialShowStatusContinuous,[24;63H[K[24;63H133,5[9C22%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1913[1;24r[23;4H serialStopContinuous,[24;63H[K[24;63H134,5[9C22%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1914[1;24r[23;4H serialGetResult,[24;63H[K[24;63H135,5[9C22%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1915[1;24r[23;2H },[24;63H[K[24;63H136,4[9C23%[23;4H[?12l[?25h[?25l[1;23r[23;1H
1916[1;24r[23;2H {[24;63H[K[24;63H137,3[9C23%[23;3H[?12l[?25h[?25l[1;23r[23;1H
1917[1;24r[23;4H [31m"DMA interface"[m,[24;63H[K[24;63H138,5[9C23%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1918[1;24r[23;4H dmaResetContinuous,[24;63H[K[24;63H139,5[9C23%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1919[1;24r[23;4H dmaShowStatusContinuous,[24;63H[K[24;63H140,5[9C23%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1920[1;24r[23;4H dmaStopContinuous,[24;63H[K[24;63H141,5[9C24%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1921[1;24r[23;4H dmaGetResult,[24;63H[K[24;63H142,5[9C24%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1922[1;24r[23;2H },[24;63H[K[24;63H143,4[9C24%[23;4H[?12l[?25h[?25l[1;23r[23;1H
1923[1;24r[23;1H};[24;63H[K[24;63H144,2[9C24%[23;2H[?12l[?25h[?25l[1;23r[23;1H
1924[1;24r[24;63H[K[24;63H145,0-1[7C24%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1925[1;24r[24;63H[K[24;63H146,0-1[7C25%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1926[1;24r[23;1H[34m/*[m[24;63H[K[24;63H147,2[9C25%[23;2H[?12l[?25h[?25l[1;23r[23;1H
1927[1;24r[23;1H[34m * Main function[m[24;63H[K[24;63H148,5[9C25%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1928[1;24r[23;1H[34m */[m[24;63H[K[24;63H149,3[9C25%[23;3H[?12l[?25h[?25l[1;23r[23;1H
1929[1;24r[23;1H[32mint[m main([32mint[m argc, [32mchar[m *argv[])[24;63H[K[24;63H150,5[9C25%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1930[1;24r[23;1H{[24;63H[K[24;63H151,1[9C26%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1931[1;24r[23;2H [34m// Set the default device[m[24;63H[K[24;63H152,5[9C26%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1932[1;24r[23;2H nf2.device_name = DEFAULT_IFACE;[24;63H[K[24;63H153,5[9C26%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1933[1;24r[24;63H[K[24;63H154,0-1[7C26%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1934[1;24r[23;2H [34m// Process the command line arguments[m[24;63H[K[24;63H155,5[9C26%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1935[1;24r[23;2H processArgs(argc, argv);[24;63H[K[24;63H156,5[9C27%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1936[1;24r[24;63H[K[24;63H157,0-1[7C27%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1937[1;24r[23;2H [34m// Check that the interface is valid and open it if possible[m[24;63H[K[24;63H158,5[9C27%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1938[1;24r[23;2H [38;5;130mif[m (check_iface(&nf2))[24;63H[K[24;63H159,5[9C27%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1939[1;24r[23;2H {[24;63H[K[24;63H160,3[9C28%[23;3H[?12l[?25h[?25l[1;23r[23;1H
1940[1;24r[23;4H exit([31m1[m);[24;63H[K[24;63H161,5[9C28%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1941[1;24r[21;3H[106m{[m
1942
1943 [106m}[m[24;63H[K[24;63H162,3[9C28%[23;3H[?12l[?25h[?25l[1;23r[23;1H
1944[1;24r[20;3H{
1945
1946 }
1947 [38;5;130mif[m (openDescriptor(&nf2))[24;63H[K[24;63H163,5[9C28%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1948[1;24r[23;2H {[24;63H[K[24;63H164,3[9C28%[23;3H[?12l[?25h[?25l[1;23r[23;1H
1949[1;24r[23;4H exit([31m1[m);[24;63H[K[24;63H165,5[9C29%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1950[1;24r[21;3H[106m{[m
1951
1952 [106m}[m[24;63H[K[24;63H166,3[9C29%[23;3H[?12l[?25h[?25l[1;23r[23;1H
1953[1;24r[20;3H{
1954
1955 }[24;63H[K[24;63H167,0-1[7C29%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1956[1;24r[23;2H [34m// Verify that the correct device is downloaded[m[24;63H[K[24;63H168,5[9C29%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1957[1;24r[23;2H [38;5;130mif[m (!checkVirtexBitfile(&nf2, DEVICE_PROJ_DIR,[24;63H[K[24;63H169,5[9C29%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1958[1;24r[23;24H DEVICE_MAJOR, DEVICE_MINOR, VERSION_ANY,[24;63H[K[24;63H170,1-8[7C30%[23;8H[?12l[?25h[?25l[1;23r[23;1H
1959[1;24r[23;24H DEVICE_MAJOR, DEVICE_MINOR, VERSION_ANY)) {[24;63H[K[24;63H171,1-8[7C30%[23;8H[?12l[?25h[?25l[1;23r[23;1H
1960[1;24r[23;4H fprintf([31mstderr[m, [31m"[m[35m%s\n[m[31m"[m, getVirtexBitfileErr());[24;63H[K[24;63H172,5[9C30%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1961[1;24r[23;4H exit([31m1[m);[24;63H[K[24;63H173,5[9C30%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1962[1;24r[20;67H[106m{[m[23;2H [106m}[m[24;63H[K[24;63H174,3[9C30%[23;3H[?12l[?25h[?25l[1;23r[23;1H
1963[1;24r[19;67H{[22;3H}
1964 [38;5;130melse[m {[24;63H[K[24;63H175,5[9C31%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1965[1;24r[23;4H printf(getDeviceInfoStr(&nf2));[24;63H[K[24;63H176,5[9C31%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1966[1;24r[21;8H[106m{[m
1967
1968 [106m}[m[24;63H[K[24;63H177,3[9C31%[23;3H[?12l[?25h[?25l[1;23r[23;1H
1969[1;24r[20;8H{
1970
1971 }[24;63H[K[24;63H178,0-1[7C31%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1972[1;24r[23;2H [34m// Add a signal handler[m[24;63H[K[24;63H179,5[9C31%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1973[1;24r[23;2H signal([31mSIGINT[m, sigint_handler);[24;63H[K[24;63H180,5[9C32%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1974[1;24r[24;63H[K[24;63H181,0-1[7C32%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1975[1;24r[23;2H [34m// Measure the clock rates[m[24;63H[K[24;63H182,5[9C32%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1976[1;24r[23;2H measureClocks();[24;63H[K[24;63H183,5[9C32%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1977[1;24r[24;63H[K[24;63H184,0-1[7C32%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1978[1;24r[23;2H [34m// Run the appropriate test[m[24;63H[K[24;63H185,5[9C33%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1979[1;24r[23;2H [38;5;130mif[m (continuous) {[24;63H[K[24;63H186,5[9C33%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1980[1;24r[23;4H mainContinuous();[24;63H[K[24;63H187,5[9C33%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1981[1;24r[21;19H[106m{[m
1982
1983 [106m}[m[24;63H[K[24;63H188,3[9C33%[23;3H[?12l[?25h[?25l[1;23r[23;1H
1984[1;24r[20;19H{
1985
1986 }
1987 [38;5;130melse[m [38;5;130mif[m (shortrun) {[24;63H[K[24;63H189,5[9C33%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1988[1;24r[23;4H mainOneShot();[24;63H[K[24;63H190,5[9C34%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1989[1;24r[21;22H[106m{[m
1990
1991 [106m}[m[24;63H[K[24;63H191,3[9C34%[23;3H[?12l[?25h[?25l[1;23r[23;1H
1992[1;24r[20;22H{
1993
1994 }[24;63H[K[24;63H192,0-1[7C34%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1995[1;24r[23;2H [34m// Close the network descriptor[m[24;63H[K[24;63H193,5[9C34%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1996[1;24r[23;2H closeDescriptor(&nf2);[24;63H[K[24;63H194,5[9C34%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1997[1;24r[24;63H[K[24;63H195,0-1[7C35%[23;1H[?12l[?25h[?25l[1;23r[23;1H
1998[1;24r[23;2H [38;5;130mreturn[m [31m0[m;[24;63H[K[24;63H196,5[9C35%[23;5H[?12l[?25h[?25l[1;23r[23;1H
1999[1;24r[23;1H}[24;63H[K[24;63H197,1[9C35%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2000[1;24r[24;63H[K[24;63H198,0-1[7C35%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2001[1;24r[23;1H[34m/*[m[24;63H[K[24;63H199,2[9C35%[23;2H[?12l[?25h[?25l[1;23r[23;1H
2002[1;24r[23;1H[34m * "Main" function for continuous mode[m[24;63H[K[24;63H200,5[9C36%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2003[1;24r[23;1H[34m */[m[24;63H[K[24;63H201,3[9C36%[23;3H[?12l[?25h[?25l[1;23r[23;1H
2004[1;24r[23;1H[32mvoid[m mainContinuous([32mvoid[m)[24;63H[K[24;63H202,5[9C36%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2005[1;24r[23;1H{[24;63H[K[24;63H203,1[9C36%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2006[1;24r[23;2H [34m// Set up curses[m[24;63H[K[24;63H204,5[9C37%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2007[1;24r[23;2H w = initscr();[24;63H[K[24;63H205,5[9C37%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2008[1;24r[23;2H cbreak();[24;63H[K[24;63H206,5[9C37%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2009[1;24r[23;2H halfdelay([31m1[m);[24;63H[K[24;63H207,5[9C37%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2010[1;24r[23;2H noecho();[24;63H[K[24;63H208,5[9C37%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2011[1;24r[24;63H[K[24;63H209,0-1[7C38%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2012[1;24r[23;2H [34m//init_work(); //initialization. one time effort[m[24;63H[K[24;63H210,5[9C38%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2013[1;24r[24;63H[K[24;63H211,0-1[7C38%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2014[1;24r[23;2H [34m// Run the test in continuous mode[m[24;63H[K[24;63H212,5[9C38%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2015[1;24r[23;2H run_continuous();[24;63H[K[24;63H213,5[9C38%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2016[1;24r[23;2H stop_continuous();[24;63H[K[24;63H214,5[9C39%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2017[1;24r[24;63H[K[24;63H215,0-1[7C39%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2018[1;24r[23;2H [34m// End the curses[m[24;63H[K[24;63H216,5[9C39%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2019[1;24r[23;2H endwin();[24;63H[K[24;63H217,5[9C39%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2020[1;24r[8;1H[106m{[23;1H}[m[24;63H[K[24;63H218,1[9C39%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2021[1;24r[7;1H{[22;1H}[24;63H[K[24;63H219,0-1[7C40%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2022[1;24r[23;1H[34m/*[m[24;63H[K[24;63H220,2[9C40%[23;2H[?12l[?25h[?25l[1;23r[23;1H
2023[1;24r[23;1H[34m * "Main" function for one-shot mode[m[24;63H[K[24;63H221,5[9C40%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2024[1;24r[23;1H[34m */[m[24;63H[K[24;63H222,3[9C40%[23;3H[?12l[?25h[?25l[1;23r[23;1H
2025[1;24r[23;1H[32mvoid[m mainOneShot([32mvoid[m)[24;63H[K[24;63H223,5[9C40%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2026[1;24r[23;1H{[24;63H[K[24;63H224,1[9C41%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2027[1;24r[23;2H [32mint[m i;[24;63H[K[24;63H225,5[9C41%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2028[1;24r[23;2H [32mint[m failed = [31m0[m;[24;63H[K[24;63H226,5[9C41%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2029[1;24r[24;63H[K[24;63H227,0-1[7C41%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2030[1;24r[23;2H [34m// Reset the board and initialize the tests[m[24;63H[K[24;63H228,5[9C41%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2031[1;24r[23;2H reset_board();[24;63H[K[24;63H229,5[9C42%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2032[1;24r[23;2H reset_continuous();[24;63H[K[24;63H230,5[9C42%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2033[1;24r[24;63H[K[24;63H231,0-1[7C42%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2034[1;24r[23;2H [34m// Run the test in one-shot mode mode[m[24;63H[K[24;63H232,5[9C42%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2035[1;24r[23;2H printf([31m"NetFPGA selftest [m[35m%s\n[m[31m"[m, SELFTEST_VERSION);[24;63H[K[24;63H233,5[9C42%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2036[1;24r[23;2H printf([31m"Running"[m);[24;63H[K[24;63H234,5[9C43%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2037[1;24r[23;2H fflush([31mstdout[m);[24;63H[K[24;63H235,5[9C43%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2038[1;24r[23;2H [38;5;130mfor[m (i = [31m0[m; i < ONE_SHOT_ITER; i++) {[24;63H[K[24;63H236,5[9C43%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2039[1;24r[23;4H sleep([31m1[m);[24;63H[K[24;63H237,5[9C43%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2040[1;24r[23;4H printf([31m"."[m);[24;63H[K[24;63H238,5[9C43%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2041[1;24r[23;4H fflush([31mstdout[m);[24;63H[K[24;63H239,5[9C44%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2042[1;24r[19;39H[106m{[m[23;2H [106m}[m[24;63H[K[24;63H240,3[9C44%[23;3H[?12l[?25h[?25l[1;23r[23;1H
2043[1;24r[18;39H{[22;3H}
2044 printf([31m" "[m);[24;63H[K[24;63H241,5[9C44%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2045[1;24r[24;63H[K[24;63H242,0-1[7C44%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2046[1;24r[23;2H [34m// Verify the results[m[24;63H[K[24;63H243,5[9C44%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2047[1;24r[23;2H [38;5;130mfor[m (i = [31m0[m; i < NUM_TESTS; i++) {[24;63H[K[24;63H244,5[9C45%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2048[1;24r[23;4H [38;5;130mif[m (!modules[i].get_result()) {[24;63H[K[24;63H245,5[9C45%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2049[1;24r[23;6H [38;5;130mif[m (!failed)[24;63H[K[24;63H246,5[9C45%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2050[1;24r[23;8H printf([31m"FAILED. Failing tests: "[m);[24;63H[K[24;63H247,5[9C45%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2051[1;24r[23;6H [38;5;130melse[m[24;63H[K[24;63H248,5[9C46%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2052[1;24r[23;8H printf([31m", "[m);[24;63H[K[24;63H249,5[9C46%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2053[1;24r[23;6H printf(modules[i].name);[24;63H[K[24;63H250,5[9C46%[23;5H[?12l[?25h[?25l[24;64H49[22;5H[?12l[?25h[?25l[24;65H8[21;5H[?12l[?25h[?25l[24;65H7[20;5H[?12l[?25h[?25l[24;65H6[19;5H[?12l[?25h[?25l[24;65H5[18;5H[?12l[?25h[?25l[24;65H4[17;5H[?12l[?25h[?25l[24;65H3[16;5H[?12l[?25h[?25l[24;65H2,0-1[15;1H[?12l[?25h[?25l[24;65H1,5 [14;5H[?12l[?25h[?25l[9;39H[106m{[13;3H}[m[24;65H0,3[13;3H[?12l[?25h[?25l[9;39H{[13;3H}[24;64H39,5[12;5H[?12l[?25h[?25l[24;65H8[11;5H[?12l[?25h[?25l[24;65H7[10;5H[?12l[?25h[?25l[24;65H6[9;5H[?12l[?25h[?25l[24;65H5[8;5H[?12l[?25h[?25l[24;65H4[7;5H[?12l[?25h[?25l[24;65H3[6;5H[?12l[?25h[?25l[24;65H2[5;5H[?12l[?25h[?25l[24;65H1,0-1[4;1H[?12l[?25h[?25l[24;65H0,5 [3;5H[?12l[?25h[?25l[24;64H29[2;5H[?12l[?25h[?25l[24;65H8[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H227,0-1[7C46%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32mint[m failed = [31m0[m;[24;63H[K[24;63H226,5[9C46%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32mint[m i;[24;63H[K[24;63H225,5[9C45%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H{[24;63H[K[24;63H224,1[9C45%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[32mvoid[m mainOneShot([32mvoid[m)[24;63H[K[24;63H223,5[9C45%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m */[m[24;63H[K[24;63H222,3[9C45%[1;3H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m * "Main" function for one-shot mode[m[24;63H[K[24;63H221,5[9C44%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m/*[m[24;63H[K[24;63H220,2[9C44%[1;2H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H219,0-1[7C44%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H}[24;63H[K[24;63H218,1[9C44%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H endwin();[24;63H[K[24;63H217,5[9C44%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [34m// End the curses[m[24;63H[K[24;63H216,5[9C43%[1;5H[?12l[?25h[?25l[24;65H7[2;5H[?12l[?25h[?25l[24;65H8,1[3;1H[?12l[?25h[?25l[24;65H9,0-1[4;1H[?12l[?25h[?25l[24;64H20,2 [5;2H[?12l[?25h[?25l[24;65H1,5[6;5H[?12l[?25h[?25l[24;65H2,3[7;3H[?12l[?25h[?25l[24;65H3,5[8;5H[?12l[?25h[?25l[24;65H4,1[9;1H[?12l[?25h[?25l[24;65H5,5[10;5H[?12l[?25h[?25l[24;65H6[11;5H[?12l[?25h[?25l[24;65H7,0-1[12;1H[?12l[?25h[?25l[24;65H8,5 [13;5H[?12l[?25h[?25l[24;65H9[14;5H[?12l[?25h[?25l[24;64H30[15;5H[?12l[?25h[?25l[24;65H1,0-1[16;1H[?12l[?25h[?25l[24;65H2,5 [17;5H[?12l[?25h[?25l[24;65H3[18;5H[?12l[?25h[?25l[24;65H4[19;5H[?12l[?25h[?25l[24;65H5[20;5H[?12l[?25h[?25l[24;65H6[21;5H[?12l[?25h[?25l[24;65H7[22;5H[?12l[?25h[?25l[24;65H8[23;5H[?12l[?25h[?25l[1;23r[23;1H
2054[1;24r[23;4H fflush([31mstdout[m);[24;63H[K[24;63H239,5[9C44%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2055[1;24r[19;39H[106m{[m[23;2H [106m}[m[24;63H[K[24;63H240,3[9C44%[23;3H[?12l[?25h[?25l[1;23r[23;1H
2056[1;24r[18;39H{[22;3H}
2057 printf([31m" "[m);[24;63H[K[24;63H241,5[9C44%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2058[1;24r[24;63H[K[24;63H242,0-1[7C44%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2059[1;24r[23;2H [34m// Verify the results[m[24;63H[K[24;63H243,5[9C44%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2060[1;24r[23;2H [38;5;130mfor[m (i = [31m0[m; i < NUM_TESTS; i++) {[24;63H[K[24;63H244,5[9C45%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2061[1;24r[23;4H [38;5;130mif[m (!modules[i].get_result()) {[24;63H[K[24;63H245,5[9C45%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2062[1;24r[23;6H [38;5;130mif[m (!failed)[24;63H[K[24;63H246,5[9C45%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2063[1;24r[23;8H printf([31m"FAILED. Failing tests: "[m);[24;63H[K[24;63H247,5[9C45%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2064[1;24r[23;6H [38;5;130melse[m[24;63H[K[24;63H248,5[9C46%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2065[1;24r[23;8H printf([31m", "[m);[24;63H[K[24;63H249,5[9C46%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2066[1;24r[23;6H printf(modules[i].name);[24;63H[K[24;63H250,5[9C46%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2067[1;24r[24;63H[K[24;63H251,0-1[7C46%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2068[1;24r[23;6H [34m// Record that the tests have failed[m[24;63H[K[24;63H252,5[9C46%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2069[1;24r[23;6H failed = [31m1[m;[24;63H[K[24;63H253,5[9C47%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2070[1;24r[14;35H[106m{[m[23;4H [106m}[m[24;63H[K[24;63H254,5[9C47%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2071[1;24r[12;35H[106m{[m[13;35H{[22;5H}
2072 [106m}[m[24;63H[K[24;63H255,3[9C47%[23;3H[?12l[?25h[?25l[1;23r[23;1H
2073[1;24r[11;35H{[22;3H}[24;63H[K[24;63H256,0-1[7C47%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2074[1;24r[23;2H [34m// Terminat the tests[m[24;63H[K[24;63H257,5[9C47%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2075[1;24r[23;2H stop_continuous();[24;63H[K[24;63H258,5[9C48%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2076[1;24r[24;63H[K[24;63H259,0-1[7C48%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2077[1;24r[23;2H [34m// Check if the tests failed[m[24;63H[K[24;63H260,5[9C48%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2078[1;24r[23;2H [38;5;130mif[m (!failed)[24;63H[K[24;63H261,5[9C48%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2079[1;24r[23;4H printf([31m"PASSED[m[35m\n[m[31m"[m);[24;63H[K[24;63H262,5[9C48%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2080[1;24r[23;2H [38;5;130melse[m[24;63H[K[24;63H263,5[9C49%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2081[1;24r[23;4H printf([31m"[m[35m\n[m[31m"[m);[24;63H[K[24;63H264,5[9C49%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2082[1;24r[23;1H}[24;63H[K[24;63H265,1[9C49%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2083[1;24r[24;63H[K[24;63H266,0-1[7C49%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2084[1;24r[23;1H[34m/*[m[24;63H[K[24;63H267,2[9C49%[23;2H[?12l[?25h[?25l[1;23r[23;1H
2085[1;24r[23;1H[34m * Display a title bar[m[24;63H[K[24;63H268,5[9C50%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2086[1;24r[23;1H[34m */[m[24;63H[K[24;63H269,3[9C50%[23;3H[?12l[?25h[?25l[1;23r[23;1H
2087[1;24r[23;1H[32mvoid[m title_bar([32mvoid[m) {[24;63H[K[24;63H270,5[9C50%[23;5H[?12l[?25h[?25l[24;64H69,3[22;3H[?12l[?25h[?25l[24;65H8,5[21;5H[?12l[?25h[?25l[24;65H7,2[20;2H[?12l[?25h[?25l[24;65H6,0-1[19;1H[?12l[?25h[?25l[24;65H5,1 [18;1H[?12l[?25h[?25l[24;65H4,5[17;5H[?12l[?25h[?25l[24;65H3[16;5H[?12l[?25h[?25l[24;65H2[15;5H[?12l[?25h[?25l[24;65H1[14;5H[?12l[?25h[?25l[24;65H0[13;5H[?12l[?25h[?25l[24;64H59,0-1[12;1H[?12l[?25h[?25l[24;65H8,5 [11;5H[?12l[?25h[?25l[24;65H7[10;5H[?12l[?25h[?25l[24;65H6,0-1[9;1H[?12l[?25h[?25l[24;65H5,3 [8;3H[?12l[?25h[?25l[24;65H4,5[7;5H[?12l[?25h[?25l[24;65H3[6;5H[?12l[?25h[?25l[24;65H2[5;5H[?12l[?25h[?25l[24;65H1,0-1[4;1H[?12l[?25h[?25l[24;65H0,5 [3;5H[?12l[?25h[?25l[24;64H49[2;5H[?12l[?25h[?25l[24;65H8[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;8H printf([31m"FAILED. Failing tests: "[m);[24;63H[K[24;63H247,5[9C50%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;6H [38;5;130mif[m (!failed)[24;63H[K[24;63H246,5[9C50%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;4H [38;5;130mif[m (!modules[i].get_result()) {[24;63H[K[24;63H245,5[9C49%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [38;5;130mfor[m (i = [31m0[m; i < NUM_TESTS; i++) {[24;63H[K[24;63H244,5[9C49%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [34m// Verify the results[m[24;63H[K[24;63H243,5[9C49%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H242,0-1[7C49%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H printf([31m" "[m);[24;63H[K[24;63H241,5[9C49%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H }[24;63H[K[24;63H240,3[9C48%[1;3H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;4H fflush([31mstdout[m);[24;63H[K[24;63H239,5[9C48%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;4H printf([31m"."[m);[24;63H[K[24;63H238,5[9C48%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;4H sleep([31m1[m);[24;63H[K[24;63H237,5[9C48%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [38;5;130mfor[m (i = [31m0[m; i < ONE_SHOT_ITER; i++) {[24;63H[K[24;63H236,5[9C48%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H fflush([31mstdout[m);[24;63H[K[24;63H235,5[9C47%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H printf([31m"Running"[m);[24;63H[K[24;63H234,5[9C47%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H printf([31m"NetFPGA selftest [m[35m%s\n[m[31m"[m, SELFTEST_VERSION);[24;63H[K[24;63H233,5[9C47%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [34m// Run the test in one-shot mode mode[m[24;63H[K[24;63H232,5[9C47%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H231,0-1[7C47%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H reset_continuous();[24;63H[K[24;63H230,5[9C46%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H reset_board();[24;63H[K[24;63H229,5[9C46%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [34m// Reset the board and initialize the tests[m[24;63H[K[24;63H228,5[9C46%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H227,0-1[7C46%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32mint[m failed = [31m0[m;[24;63H[K[24;63H226,5[9C46%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32mint[m i;[24;63H[K[24;63H225,5[9C45%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H{[24;63H[K[24;63H224,1[9C45%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[32mvoid[m mainOneShot([32mvoid[m)[24;63H[K[24;63H223,5[9C45%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m */[m[24;63H[K[24;63H222,3[9C45%[1;3H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m * "Main" function for one-shot mode[m[24;63H[K[24;63H221,5[9C44%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m/*[m[24;63H[K[24;63H220,2[9C44%[1;2H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H219,0-1[7C44%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H}[24;63H[K[24;63H218,1[9C44%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H endwin();[24;63H[K[24;63H217,5[9C44%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [34m// End the curses[m[24;63H[K[24;63H216,5[9C43%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H215,0-1[7C43%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H stop_continuous();[24;63H[K[24;63H214,5[9C43%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H run_continuous();[24;63H[K[24;63H213,5[9C43%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [34m// Run the test in continuous mode[m[24;63H[K[24;63H212,5[9C43%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H211,0-1[7C42%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [34m//init_work(); //initialization. one time effort[m[24;63H[K[24;63H210,5[9C42%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H209,0-1[7C42%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H noecho();[24;63H[K[24;63H208,5[9C42%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H halfdelay([31m1[m);[24;63H[K[24;63H207,5[9C42%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H cbreak();[24;63H[K[24;63H206,5[9C41%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H w = initscr();[24;63H[K[24;63H205,5[9C41%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [34m// Set up curses[m[24;63H[K[24;63H204,5[9C41%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[106m{[16;1H}[m[24;63H[K[24;63H203,1[9C41%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[32mvoid[m mainContinuous([32mvoid[m)
2088{[17;1H}[24;63H[K[24;63H202,5[9C41%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m */[m[24;63H[K[24;63H201,3[9C40%[1;3H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m * "Main" function for continuous mode[m[24;63H[K[24;63H200,5[9C40%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m/*[m[24;63H[K[24;63H199,2[9C40%[1;2H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H198,0-1[7C40%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H}[24;63H[K[24;63H197,1[9C40%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [38;5;130mreturn[m [31m0[m;[24;63H[K[24;63H196,5[9C39%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H195,0-1[7C39%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H closeDescriptor(&nf2);[24;63H[K[24;63H194,5[9C39%[1;5H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [34m// Close the network descriptor[m[24;63H[K[24;63H193,5[9C39%[1;5H[?12l[?25h[?25l[24;65H4[2;5H[?12l[?25h[?25l[24;65H5,0-1[3;1H[?12l[?25h[?25l[24;65H6,5 [4;5H[?12l[?25h[?25l[24;65H7,1[5;1H[?12l[?25h[?25l[24;65H8,0-1[6;1H[?12l[?25h[?25l[24;65H9,2 [7;2H[?12l[?25h[?25l[24;63H200,5[8;5H[?12l[?25h[?25l[24;65H1,3[9;3H[?12l[?25h[?25l[24;65H2,5[10;5H[?12l[?25h[?25l[24;65H3,1[11;1H[?12l[?25h[?25l[24;65H4,5[12;5H[?12l[?25h[?25l[24;65H5[13;5H[?12l[?25h[?25l[24;65H6[14;5H[?12l[?25h[?25l[24;65H7[15;5H[?12l[?25h[?25l[24;65H8[16;5H[?12l[?25h[?25l[24;65H9,0-1[17;1H[?12l[?25h[?25l[24;64H10,5 [18;5H[?12l[?25h[?25l[24;65H1,0-1[19;1H[?12l[?25h[?25l[24;65H2,5 [20;5H[?12l[?25h[?25l[24;65H3[21;5H[?12l[?25h[?25l[24;65H4[22;5H[?12l[?25h[?25l[24;65H5,0-1[23;1H[?12l[?25h[?25l[1;23r[23;1H
2089[1;24r[23;2H [34m// End the curses[m[24;63H[K[24;63H216,5[9C39%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2090[1;24r[23;2H endwin();[24;63H[K[24;63H217,5[9C39%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2091[1;24r[8;1H[106m{[23;1H}[m[24;63H[K[24;63H218,1[9C39%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2092[1;24r[7;1H{[22;1H}[24;63H[K[24;63H219,0-1[7C40%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2093[1;24r[23;1H[34m/*[m[24;63H[K[24;63H220,2[9C40%[23;2H[?12l[?25h[?25l[1;23r[23;1H
2094[1;24r[23;1H[34m * "Main" function for one-shot mode[m[24;63H[K[24;63H221,5[9C40%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2095[1;24r[23;1H[34m */[m[24;63H[K[24;63H222,3[9C40%[23;3H[?12l[?25h[?25l[1;23r[23;1H
2096[1;24r[23;1H[32mvoid[m mainOneShot([32mvoid[m)[24;63H[K[24;63H223,5[9C40%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2097[1;24r[23;1H{[24;63H[K[24;63H224,1[9C41%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2098[1;24r[23;2H [32mint[m i;[24;63H[K[24;63H225,5[9C41%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2099[1;24r[23;2H [32mint[m failed = [31m0[m;[24;63H[K[24;63H226,5[9C41%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2100[1;24r[24;63H[K[24;63H227,0-1[7C41%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2101[1;24r[23;2H [34m// Reset the board and initialize the tests[m[24;63H[K[24;63H228,5[9C41%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2102[1;24r[23;2H reset_board();[24;63H[K[24;63H229,5[9C42%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2103[1;24r[23;2H reset_continuous();[24;63H[K[24;63H230,5[9C42%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2104[1;24r[24;63H[K[24;63H231,0-1[7C42%[23;1H[?12l[?25h[?25l[24;65H0,5 [22;5H[?12l[?25h[?25l[24;64H29[21;5H[?12l[?25h[?25l[24;67H3[21;3H[?12l[?25h[?25l[24;64H30[22;3H[?12l[?25h[?25l
2105
2106/\<reset_continuous\>[24;63H[K[24;1H[27m[m[H[2J[1;1H[34m * Run the program in continuous mode
2107 */[m
2108[32mvoid[m run_continuous([32mvoid[m) {
2109 [32mint[m ch = ERR;
2110 [32mint[m count;
2111 [32mint[m prev_lines;
2112 [32mint[m prev_cols;
2113 [32mint[m i;
2114
2115 [34m// Reset the board and initialize the tests[m
2116 reset_board();
2117 reset_continuous();[15;2H [34m// Run the tests continuously and wait[m
2118 [38;5;130mwhile[m ([31m1[m) {
2119 [34m// Remember the screen dimensions[m
2120 prev_lines = LINES;
2121 prev_cols = COLS;[21;4H [34m// Clear the screen and move to the top corner[m
2122 erase();
2123 move([31m0[m,[31m0[m);[24;63H302,3[9C59%[12;3H[?12l[?25h[?25l[24;1H/\<reset_continuous\>[24;63H[K[24;1H[27m[m[H[2J[1;4H [38;5;130mif[m (continuous)[2;6H stop_continuous();[4;4H printf([31m"Caught SIGINT. Exiting...[m[35m\n[m[31m"[m);
2124 exit([31m0[m);
2125 }
2126}
2127
2128[34m/*
2129 * Invoke the reset functions for continuous mode
2130 */[m
2131[32mvoid[m reset_continuous([32mvoid[m) {
2132 [32mint[m i;
2133
2134 [38;5;130mfor[m (i = [31m0[m; i < NUM_TESTS; i++) {
2135 modules[i].reset_continuous();
2136 }
2137}
2138
2139[34m/*
2140 * Invoke the stop functions for continuous mode
2141 */[m
2142[32mvoid[m stop_continuous([32mvoid[m) {[24;63H383,6[9C75%[12;6H[?12l[?25h[?25l[24;65H4[13;6H[?12l[?25h[?25l[24;65H5,0-1[14;1H[?12l[?25h[?25l[24;65H6,6 [15;6H[?12l[?25h[?25l[24;65H7[16;6H[?12l[?25h[?25l[24;65H6[15;6H[?12l[?25h[?25l[24;65H5,0-1[14;1H[?12l[?25h[?25l[24;65H4,6 [13;6H[?12l[?25h[?25l[24;65H3[12;6H[?12l[?25h[?25l[24;65H2,3[11;3H[?12l[?25h[?25l[24;65H1,6[10;6H[?12l[?25h[?25l[24;65H0,2[9;2H[?12l[?25h[?25l[24;64H79,0-1[8;1H[?12l[?25h[?25l[24;65H8,1 [7;1H[?12l[?25h[?25l[24;65H7,3[6;3H[?12l[?25h[?25l[24;65H6,6[5;6H[?12l[?25h[?25l[24;65H5[4;6H[?12l[?25h[?25l[24;65H4,0-1[3;1H[?12l[?25h[?25l[24;65H3,6 [2;6H[?12l[?25h[?25l[24;65H2[1;6H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H371,0-1[7C75%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;4H endwin();[24;63H[K[24;63H370,6[9C75%[1;6H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [38;5;130mif[m [106m([msignum == [31mSIGINT[m[106m)[m {[24;63H[K[24;63H369,6[9C75%[1;6H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[32mvoid[m sigint_handler([32mint[m signum) {[2;6H([16C)[24;63H[K[24;63H368,6[9C75%[1;6H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m */[m[24;63H[K[24;63H367,3[9C74%[1;3H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m * Handle SIGINT gracefully[m[24;63H[K[24;63H366,6[9C74%[1;6H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m/*[m[24;63H[K[24;63H365,2[9C74%[1;2H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H364,0-1[7C74%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H}[24;63H[K[24;63H363,1[9C74%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;3H writeReg(&nf2, CPCI_CTRL_REG, val | CPCI_CTRL_CNET_RESET);[24;63H[K[24;63H362,6[9C73%[1;6H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;3H [34m/* Write to the control register to reset it */[m[24;63H[K[24;63H361,6[9C73%[1;6H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H360,0-1[7C73%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;3H readReg(&nf2, CPCI_CTRL_REG, &val);[24;63H[K[24;63H359,6[9C73%[1;6H[?12l[?25h[?25l[24;1H/\<reset_continuous\>[24;63H[K[24;1H[1;23r[1;1H[2M[1;24r[22;1H[34m */[m
2143[32mvoid[m reset_continuous([32mvoid[m) {[24;1H[K[24;63H383,6[9C73%[23;6H[?12l[?25h[?25l
2144/\<reset_continuous\>[24;63H[K[24;1H[1;23r[1;1H[4M[1;24r[20;2H [32mint[m i;
2145
2146 [38;5;130mfor[m (i = [31m0[m; i < NUM_TESTS; i++) {
2147 modules[i].reset_continuous();[24;1H[K[24;63H387,16[8C74%[23;16H[?12l[?25h[?25l
2148/\<reset_continuous\>[24;63H[K[24;1H[31msearch hit BOTTOM, continuing at TOP[27m[m[H[2J[1;1H[34m//void show_stats (int loop_iter);
2149//bool show_status_serial_test(void);
2150//bool show_status_sram_test(void);
2151//bool show_status_dram_test(void);
2152//bool show_status_mii_test(void);
2153//bool show_status_phy_test(void);
2154//bool show_status_reg_test(void);
2155//void sram_sw_test(SW_TEST_EFFORT_LEVEL );[m
2156[32mvoid[m processArgs ([32mint[m, [32mchar[m **);
2157[32mvoid[m usage ([32mchar[m*);
2158[32mvoid[m run_continuous([32mvoid[m);
2159[32mvoid[m reset_continuous([32mvoid[m);
2160[32mvoid[m stop_continuous([32mvoid[m);
2161[32mvoid[m sigint_handler([32mint[m signum);
2162[32mvoid[m reset_board([32mvoid[m);
2163[32mvoid[m title_bar([32mvoid[m);
2164[32mvoid[m clear_line([32mvoid[m);
2165
2166[35m#define NUM_TESTS [m[31m8[m
2167[34m/* Selftest module interface */[m
2168[32mstruct[m test_module modules[NUM_TESTS] = {
2169 {
2170 [31m"Clock select"[m,[24;63H78,6[10C13%
2171[31msearch hit BOTTOM, continuing at TOP[m[24;63H[K[24;63H78,6[10C13%[12;6H[?12l[?25h[?25l[24;1H/\<reset_continuous\>[24;22H[K[24;1H[27m[m[H[2J[2;1H[34m/*
2172 * "Main" function for one-shot mode
2173 */[m
2174[32mvoid[m mainOneShot([32mvoid[m)
2175{
2176 [32mint[m i;
2177 [32mint[m failed = [31m0[m;
2178
2179 [34m// Reset the board and initialize the tests[m
2180 reset_board();
2181 reset_continuous();
2182
2183 [34m// Run the test in one-shot mode mode[m
2184 printf([31m"NetFPGA selftest [m[35m%s\n[m[31m"[m, SELFTEST_VERSION);
2185 printf([31m"Running"[m);
2186 fflush([31mstdout[m);
2187 [38;5;130mfor[m (i = [31m0[m; i < ONE_SHOT_ITER; i++) {
2188 sleep([31m1[m);
2189 printf([31m"."[m);
2190 fflush([31mstdout[m);
2191 }
2192 printf([31m" "[m);[24;63H230,3[9C44%[12;3H[?12l[?25h[?25l[24;65H1,0-1[13;1H[?12l[?25h[?25l[24;65H2,3 [14;3H[?12l[?25h[?25l[24;65H3[15;3H[?12l[?25h[?25l[24;65H4[16;3H[?12l[?25h[?25l[24;65H5[17;3H[?12l[?25h[?25l[24;65H6[18;3H[?12l[?25h[?25l[24;65H7[19;3H[?12l[?25h[?25l[24;65H8[20;3H[?12l[?25h[?25l[24;65H9[21;3H[?12l[?25h[?25l[18;39H[106m{[22;3H}[m[24;64H40[22;3H[?12l[?25h[?25l[18;39H{[22;3H}[24;65H1[23;3H[?12l[?25h[?25l[1;23r[23;1H
2193[1;24r[24;63H[K[24;63H242,0-1[7C44%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2194[1;24r[23;2H [34m// Verify the results[m[24;63H[K[24;63H243,3[9C44%[23;3H[?12l[?25h[?25l[24;65H2,0-1[22;1H[?12l[?25h[?25l[24;65H1,3 [21;3H[?12l[?25h[?25l[16;39H[106m{[20;3H}[m[24;65H0[20;3H[?12l[?25h[?25l[16;39H{[20;3H}[24;64H39[19;3H[?12l[?25h[?25l[24;65H8[18;3H[?12l[?25h[?25l[24;65H7[17;3H[?12l[?25h[?25l[24;65H6[16;3H[?12l[?25h[?25l[24;67H4[16;4H[?12l[?25h[?25l[24;67H5[16;5H[?12l[?25h[?25l[24;67H6[16;6H[?12l[?25h[?25l [106m([29C)[m[24;67H7[16;7H[?12l[?25h[?25l([29C)[24;67H8[16;8H[?12l[?25h[?25l[24;67H9[16;9H[?12l[?25h[?25l[24;67H10[16;10H[?12l[?25h[?25l[24;68H1[16;11H[?12l[?25h[?25l[24;68H2[16;12H[?12l[?25h[?25l[24;68H3[16;13H[?12l[?25h[?25l[24;68H4[16;14H[?12l[?25h[?25l[24;68H5[16;15H[?12l[?25h[?25l[24;68H6[16;16H[?12l[?25h[?25l[24;68H7[16;17H[?12l[?25h[?25l[24;68H8[16;18H[?12l[?25h[?25l[24;68H9[16;19H[?12l[?25h[?25l[24;1H/\<ONE_SHOT_ITER\>[24;63H[K[24;1H[31msearch hit BOTTOM, continuing at TOP[27m[m[H[2J[1;1H[35m#include [m[31m"selftest_phy.h"[m
2195[35m#include [m[31m"selftest_mdio.h"[m
2196[35m#include [m[31m"selftest_reg.h"[m
2197[35m#include [m[31m"selftest_clk.h"[m
2198[35m#include [m[31m"selftest_dma.h"[m
2199
2200[35m#define PATHLEN [m[31m80[m
2201
2202[35m#define DEFAULT_IFACE [m[31m"nf2c0"[m
2203[35m#define SELFTEST_VERSION [m[31m"1.00 alpha"[m
2204
2205[35m#define ONE_SHOT_ITER [m[31m5[m
2206
2207[32mtypedef[m [32menum[m {LOW = [31m0[m, HIGH = [31m1[m} SW_TEST_EFFORT_LEVEL;
2208
2209[34m/* Global vars */[m
2210[32mstruct[m nf2device nf2;
2211[32mint[m verbose = [31m0[m;
2212[32mint[m continuous = [31m0[m;
2213[32mint[m shortrun = [31m1[m;
2214[32mint[m no_sata_flg = [31m0[m;
2215
2216[32mFILE[m * log_file;[24;63H48,9[11C7%
2217[31msearch hit BOTTOM, continuing at TOP[m[24;63H[K[24;63H48,9[11C7%[12;9H[?12l[?25h[?25l[24;1H/\<ONE_SHOT_ITER\>[24;19H[K[24;1H[27m[m[H[2J[1;2H [32mint[m i;
2218 [32mint[m failed = [31m0[m;
2219
2220 [34m// Reset the board and initialize the tests[m
2221 reset_board();
2222 reset_continuous();
2223
2224 [34m// Run the test in one-shot mode mode[m
2225 printf([31m"NetFPGA selftest [m[35m%s\n[m[31m"[m, SELFTEST_VERSION);
2226 printf([31m"Running"[m);
2227 fflush([31mstdout[m);
2228 [38;5;130mfor[m (i = [31m0[m; i < ONE_SHOT_ITER; i++) {
2229 sleep([31m1[m);
2230 printf([31m"."[m);
2231 fflush([31mstdout[m);
2232 }
2233 printf([31m" "[m);
2234
2235 [34m// Verify the results[m
2236 [38;5;130mfor[m (i = [31m0[m; i < NUM_TESTS; i++) {
2237 [38;5;130mif[m (!modules[i].get_result()) {[22;6H [38;5;130mif[m (!failed)[23;8H printf([31m"FAILED. Failing tests: "[m);[24;63H236,19[8C45%[12;19H[?12l[?25h[?25l[24;65H7,13[13;13H[?12l[?25h[?25l[24;65H8,16[14;16H[?12l[?25h[?25l[24;65H9,19[15;19H[?12l[?25h[?25l[12;39H[106m{[16;3H}[m[24;64H40,3 [16;3H[?12l[?25h[?25l[12;39H{[16;3H}[24;65H1,14[17;14H[?12l[?25h[?25l[24;65H2,0-1[18;1H[?12l[?25h[?25l[24;65H3,19 [19;19H[?12l[?25h[?25l[24;65H4[20;19H[?12l[?25h[?25l[21;17H[106m[[mi[106m][m[24;65H5[21;19H[?12l[?25h[?25l[i][22;10H[106m([7C)[m[24;65H6,18[22;18H[?12l[?25h[?25l[22;10H([7C)[24;65H7,19[23;19H[?12l[?25h[?25l[1;23r[23;1H
2238[1;24r[23;6H [38;5;130melse[m[24;63H[K[24;63H248,10[8C46%[23;10H[?12l[?25h[?25l[1;23r[23;1H
2239[1;24r[23;8H printf([31m", "[m);[24;63H[K[24;63H249,19[8C46%[23;19H[?12l[?25h[?25l[1;23r[23;1H
2240[1;24r[23;6H printf(modules[i].name);[24;63H[K[24;63H250,19[8C46%[23;19H[?12l[?25h[?25l[1;23r[23;1H
2241[1;24r[24;63H[K[24;63H251,0-1[7C46%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2242[1;24r[23;6H [34m// Record that the tests have failed[m[24;63H[K[24;63H252,19[8C46%[23;19H[?12l[?25h[?25l[1;23r[23;1H
2243[1;24r[23;6H failed = [31m1[m;[24;63H[K[24;63H253,17[8C47%[23;17H[?12l[?25h[?25l[1;23r[23;1H
2244[1;24r[14;35H[106m{[m[23;4H [106m}[m[24;63H[K[24;63H254,5[9C47%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2245[1;24r[12;35H[106m{[m[13;35H{[22;5H}
2246 [106m}[m[24;63H[K[24;63H255,3[9C47%[23;3H[?12l[?25h[?25l[1;23r[23;1H
2247[1;24r[11;35H{[22;3H}[24;63H[K[24;63H256,0-1[7C47%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2248[1;24r[23;2H [34m// Terminat the tests[m[24;63H[K[24;63H257,19[8C47%[23;19H[?12l[?25h[?25l[1;23r[23;1H
2249[1;24r[23;2H stop_continuous[106m()[m;[24;63H[K[24;63H258,19[8C48%[23;19H[?12l[?25h[?25l[1;23r[23;1H
2250[1;24r[22;18H()[24;63H[K[24;63H259,0-1[7C48%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2251[1;24r[23;2H [34m// Check if the tests failed[m[24;63H[K[24;63H260,19[8C48%[23;19H[?12l[?25h[?25l[1;23r[23;1H
2252[1;24r[23;2H [38;5;130mif[m [106m([m!failed[106m)[m[24;63H[K[24;63H261,14[8C48%[23;14H[?12l[?25h[?25l[1;23r[23;1H
2253[1;24r[22;6H([7C)
2254 printf([31m"PASSED[m[35m\n[m[31m"[m);[24;63H[K[24;63H262,19[8C48%[23;19H[?12l[?25h[?25l[1;23r[23;1H
2255[1;24r[23;2H [38;5;130melse[m[24;63H[K[24;63H263,6[9C49%[23;6H[?12l[?25h[?25l[1;23r[23;1H
2256[1;24r[23;4H printf([31m"[m[35m\n[m[31m"[m);[24;63H[K[24;63H264,17[8C49%[23;17H[?12l[?25h[?25l[1;23r[23;1H
2257[1;24r[23;1H}[24;63H[K[24;63H265,1[9C49%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2258[1;24r[24;63H[K[24;63H266,0-1[7C49%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2259[1;24r[23;1H[34m/*[m[24;63H[K[24;63H267,2[9C49%[23;2H[?12l[?25h[?25l[24;65H6,0-1[22;1H[?12l[?25h[?25l[24;65H5,1 [21;1H[?12l[?25h[?25l[24;65H4,17[20;17H[?12l[?25h[?25l[24;65H3,6 [19;6H[?12l[?25h[?25l[24;65H2,19[18;19H[?12l[?25h[?25l[17;6H[106m([7C)[m[24;65H1,14[17;14H[?12l[?25h[?25l[17;6H([7C)[24;65H0,19[16;19H[?12l[?25h[?25l[24;64H59,0-1[15;1H[?12l[?25h[?25l[14;18H[106m()[m[24;65H8,19 [14;19H[?12l[?25h[?25l()[24;65H7[13;19H[?12l[?25h[?25l[24;65H6,0-1[12;1H[?12l[?25h[?25l[24;65H5,3 [11;3H[?12l[?25h[?25l[1;35H[106m{[10;5H}[m[24;65H4,5[10;5H[?12l[?25h[?25l[1;35H{[10;5H}[24;65H3,17[9;17H[?12l[?25h[?25l[24;65H2,19[8;19H[?12l[?25h[?25l[24;65H1,0-1[7;1H[?12l[?25h[?25l[24;65H0,19 [6;19H[?12l[?25h[?25l[24;64H49[5;19H[?12l[?25h[?25l[24;65H8,10[4;10H[?12l[?25h[?25l[24;65H7,19[3;19H[?12l[?25h[?25l[2;10H[106m([7C)[m[24;65H6,18[2;18H[?12l[?25h[?25l[1;17H[106m[[mi[106m][m[2;10H([7C)[24;65H5,19[1;19H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [38;5;130mfor[m (i = [31m0[m; i < NUM_TESTS; i++) {[2;17H[i][24;63H[K[24;63H244,19[8C49%[1;19H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [34m// Verify the results[m[24;63H[K[24;63H243,19[8C49%[1;19H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H242,0-1[7C49%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H printf([31m" "[m);[24;63H[K[24;63H241,14[8C49%[1;14H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H }[24;63H[K[24;63H240,3[9C48%[1;3H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;4H fflush([31mstdout[m);[24;63H[K[24;63H239,19[8C48%[1;19H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;4H printf([31m"."[m);[24;63H[K[24;63H238,16[8C48%[1;16H[?12l[?25h[?25l[24;65H9,19[2;19H[?12l[?25h[?25l[24;64H40,3 [3;3H[?12l[?25h[?25l[24;65H1,14[4;14H[?12l[?25h[?25l[24;65H2,0-1[5;1H[?12l[?25h[?25l[24;65H3,19 [6;19H[?12l[?25h[?25l[24;65H4[7;19H[?12l[?25h[?25l[8;17H[106m[[mi[106m][m[24;65H5[8;19H[?12l[?25h[?25l[i][9;10H[106m([7C)[m[24;65H6,18[9;18H[?12l[?25h[?25l[9;10H([7C)[24;65H7,19[10;19H[?12l[?25h[?25l[24;65H8,10[11;10H[?12l[?25h[?25l[24;65H9,19[12;19H[?12l[?25h[?25l[24;64H50[13;19H[?12l[?25h[?25l[24;65H1,0-1[14;1H[?12l[?25h[?25l[24;65H2,19 [15;19H[?12l[?25h[?25l[24;65H3,17[16;17H[?12l[?25h[?25l[24;68H6[16;16H[?12l[?25h[?25l[24;68H5[16;15H[?12l[?25h[?25l[24;68H4[16;14H[?12l[?25h[?25l[24;68H3[16;13H[?12l[?25h[?25l[24;68H2[16;12H[?12l[?25h[?25l[24;68H1[16;11H[?12l[?25h[?25l[24;68H0[16;10H[?12l[?25h[?25l[24;67H9 [16;9H[?12l[?25h[?25l[24;67H8[16;8H[?12l[?25h[?25l[24;67H7[16;7H[?12l[?25h[?25l[8;35H[106m{[17;5H}[m[24;65H4,5[17;5H[?12l[?25h[?25l[8;35H{[17;5H}[24;65H3,7[16;7H[?12l[?25h[?25l[24;65H2[15;7H[?12l[?25h[?25l[24;65H1,0-1[14;1H[?12l[?25h[?25l[24;65H0,7 [13;7H[?12l[?25h[?25l[24;64H49[12;7H[?12l[?25h[?25l[24;65H8[11;7H[?12l[?25h[?25l[24;65H7[10;7H[?12l[?25h[?25l[24;65H6[9;7H[?12l[?25h[?25l[24;65H5[8;7H[?12l[?25h[?25l[7;7H[106m([25C)[m[24;65H4[7;7H[?12l[?25h[?25l([25C)[24;65H3[6;7H[?12l[?25h[?25l[24;65H2,0-1[5;1H[?12l[?25h[?25l[24;65H1,7 [4;7H[?12l[?25h[?25l[24;65H0,3[3;3H[?12l[?25h[?25l[24;64H39,7[2;7H[?12l[?25h[?25l[24;65H8[1;7H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;4H sleep([31m1[m);[24;63H[K[24;63H237,7[9C48%[1;7H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [38;5;130mfor[m [106m([mi = [31m0[m; i < ONE_SHOT_ITER; i++[106m)[m {[24;63H[K[24;63H236,7[9C48%[1;7H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H fflush([31mstdout[m);[2;7H([29C)[24;63H[K[24;63H235,7[9C47%[1;7H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H printf([31m"Running"[m);[24;63H[K[24;63H234,7[9C47%[1;7H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H printf([31m"NetFPGA selftest [m[35m%s\n[m[31m"[m, SELFTEST_VERSION);[24;63H[K[24;63H233,7[9C47%[1;7H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [34m// Run the test in one-shot mode mode[m[24;63H[K[24;63H232,7[9C47%[1;7H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H231,0-1[7C47%[1;1H[?12l[?25h[?25l[24;65H2,7 [2;7H[?12l[?25h[?25l[24;65H3[3;7H[?12l[?25h[?25l[24;65H4[4;7H[?12l[?25h[?25l[24;65H5[5;7H[?12l[?25h[?25l[6;7H[106m([29C)[m[24;65H6[6;7H[?12l[?25h[?25l([29C)[24;65H7[7;7H[?12l[?25h[?25l[24;65H8[8;7H[?12l[?25h[?25l[24;65H9[9;7H[?12l[?25h[?25l[6;39H[106m{[10;3H}[m[24;64H40,3[10;3H[?12l[?25h[?25l[6;39H{[10;3H}[24;65H1,7[11;7H[?12l[?25h[?25l[24;65H2,0-1[12;1H[?12l[?25h[?25l[24;65H3,7 [13;7H[?12l[?25h[?25l[14;7H[106m([25C)[m[24;65H4[14;7H[?12l[?25h[?25l([25C)[24;65H5[15;7H[?12l[?25h[?25l[24;65H6[16;7H[?12l[?25h[?25l[24;65H7[17;7H[?12l[?25h[?25l[24;65H8[18;7H[?12l[?25h[?25l[24;65H9[19;7H[?12l[?25h[?25l[24;64H50[20;7H[?12l[?25h[?25l[24;65H1,0-1[21;1H[?12l[?25h[?25l[24;65H2,7 [22;7H[?12l[?25h[?25l[24;65H3[23;7H[?12l[?25h[?25l[1;23r[23;1H
2260[1;24r[14;35H[106m{[m[23;4H [106m}[m[24;63H[K[24;63H254,5[9C47%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2261[1;24r[12;35H[106m{[m[13;35H{[22;5H}
2262 [106m}[m[24;63H[K[24;63H255,3[9C47%[23;3H[?12l[?25h[?25l[1;23r[23;1H
2263[1;24r[11;35H{[22;3H}[24;63H[K[24;63H256,0-1[7C47%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2264[1;24r[23;2H [34m// Terminat the tests[m[24;63H[K[24;63H257,7[9C47%[23;7H[?12l[?25h[?25l[24;63H[K[24;1H:[?12l[?25h![?25l[?12l[?25hl[?25l[?12l[?25hs[?25l[?12l[?25h[?25l [?12l[?25h-[?25l[?12l[?25ha[?25l[?12l[?25hl[?25l[?12l[?25h
2265[?25l[8C[?1l>[?12l[?25h[?1049l
2266total 352
2267drwxr-xr-x 2 netfpga netfpga 4096 2011-03-10 15:04 .
2268drwxr-xr-x 8 netfpga netfpga 4096 2011-03-09 18:24 ..
2269-rwxr-xr-x 1 netfpga netfpga 26966 2011-03-09 19:22 bad_pkt_dump
2270-rw-r--r-- 1 netfpga netfpga 2386 2011-03-09 18:24 bad_pkt_dump.c
2271-rw-r--r-- 1 netfpga netfpga 4296 2011-03-09 19:22 bad_pkt_dump.o
2272-rw-r--r-- 1 netfpga netfpga 903 2011-03-09 18:24 Makefile
2273-rw-r--r-- 1 netfpga netfpga 3212 2011-03-09 18:24 or_data_types.h
2274-rw-r--r-- 1 netfpga netfpga 731 2011-03-09 18:24 or_ip.c
2275-rw-r--r-- 1 netfpga netfpga 129 2011-03-09 18:24 or_ip.h
2276-rw-r--r-- 1 netfpga netfpga 3464 2011-03-09 19:22 or_ip.o
2277-rw-r--r-- 1 netfpga netfpga 872 2011-03-09 18:24 or_utils.c
2278-rw-r--r-- 1 netfpga netfpga 292 2011-03-09 18:24 or_utils.h
2279-rw-r--r-- 1 netfpga netfpga 4108 2011-03-09 19:22 or_utils.o
2280-rwxr-xr-x 1 netfpga netfpga 67122 2011-03-09 19:22 selftest
2281-rw-r--r-- 1 netfpga netfpga 10370 2011-03-09 18:24 selftest.c
2282-rw-r--r-- 1 netfpga netfpga 3581 2011-03-09 18:24 selftest_clk.c
2283-rw-r--r-- 1 netfpga netfpga 516 2011-03-09 18:24 selftest_clk.h
2284-rw-r--r-- 1 netfpga netfpga 5740 2011-03-09 19:22 selftest_clk.o
2285-rw-r--r-- 1 root root 16384 2011-03-10 15:05 .selftest.c.swp
2286-rw-r--r-- 1 netfpga netfpga 6094 2011-03-09 18:24 selftest_dma.c
2287-rw-r--r-- 1 netfpga netfpga 644 2011-03-09 18:24 selftest_dma.h
2288-rw-r--r-- 1 netfpga netfpga 11516 2011-03-09 19:22 selftest_dma.o
2289-rw-r--r-- 1 netfpga netfpga 2660 2011-03-09 18:24 selftest_dram.c
2290-rw-r--r-- 1 netfpga netfpga 554 2011-03-09 18:24 selftest_dram.h
2291-rw-r--r-- 1 netfpga netfpga 4844 2011-03-09 19:22 selftest_dram.o
2292-rw-r--r-- 1 netfpga netfpga 859 2011-03-09 18:24 selftest.h
2293-rw-r--r-- 1 netfpga netfpga 4628 2011-03-09 18:24 selftest_mdio.c
2294-rw-r--r-- 1 netfpga netfpga 526 2011-03-09 18:24 selftest_mdio.h
2295-rw-r--r-- 1 netfpga netfpga 7932 2011-03-09 19:22 selftest_mdio.o
2296-rw-r--r-- 1 netfpga netfpga 17076 2011-03-09 19:22 selftest.o
2297-rw-r--r-- 1 netfpga netfpga 3955 2011-03-09 18:24 selftest_phy.c
2298-rw-r--r-- 1 netfpga netfpga 487 2011-03-09 18:24 selftest_phy.h
2299-rw-r--r-- 1 netfpga netfpga 6612 2011-03-09 19:22 selftest_phy.o
2300-rw-r--r-- 1 netfpga netfpga 1933 2011-03-09 18:24 selftest_reg.c
2301-rw-r--r-- 1 netfpga netfpga 520 2011-03-09 18:24 selftest_reg.h
2302-rw-r--r-- 1 netfpga netfpga 4100 2011-03-09 19:22 selftest_reg.o
2303-rw-r--r-- 1 netfpga netfpga 5986 2011-03-09 18:24 selftest_serial.c
2304-rw-r--r-- 1 netfpga netfpga 512 2011-03-09 18:24 selftest_serial.h
2305-rw-r--r-- 1 netfpga netfpga 6608 2011-03-09 19:22 selftest_serial.o
2306-rw-r--r-- 1 netfpga netfpga 3258 2011-03-09 18:24 selftest_sram.c
2307-rw-r--r-- 1 netfpga netfpga 564 2011-03-09 18:24 selftest_sram.h
2308-rw-r--r-- 1 netfpga netfpga 4976 2011-03-09 19:22 selftest_sram.o
2309
2310Press ENTER or type command to continue[?1049h[?1h=[27m[m[H[2J[?25l[1;2H fflush([31mstdout[m);
2311 [38;5;130mfor[m (i = [31m0[m; i < ONE_SHOT_ITER; i++) {
2312 sleep([31m1[m);
2313 printf([31m"."[m);
2314 fflush([31mstdout[m);
2315 }
2316 printf([31m" "[m);
2317
2318 [34m// Verify the results[m
2319 [38;5;130mfor[m (i = [31m0[m; i < NUM_TESTS; i++) {
2320 [38;5;130mif[m (!modules[i].get_result()) {[12;6H [38;5;130mif[m (!failed)[13;8H printf([31m"FAILED. Failing tests: "[m);[14;6H [38;5;130melse[m[15;8H printf([31m", "[m);[16;6H printf(modules[i].name);[18;6H [34m// Record that the tests have failed[m[19;6H failed = [31m1[m;
2321 }
2322 }
2323
2324 [34m// Terminat the tests[m[24;63H257,7[9C47%[23;7H[?12l[?25h[?25l[24;65H6,0-1[22;1H[?12l[?25h[?25l[10;35H[106m{[21;3H}[m[24;65H5,3 [21;3H[?12l[?25h[?25l[10;35H{[11;35H[106m{[20;5H}[m
2325 }[24;65H4,5[20;5H[?12l[?25h[?25l[11;35H{[20;5H}[24;65H3,7[19;7H[?12l[?25h[?25l[24;65H2[18;7H[?12l[?25h[?25l[24;65H1,0-1[17;1H[?12l[?25h[?25l[24;65H0,7 [16;7H[?12l[?25h[?25l[24;64H49[15;7H[?12l[?25h[?25l[24;65H8[14;7H[?12l[?25h[?25l[24;65H7[13;7H[?12l[?25h[?25l[24;65H6[12;7H[?12l[?25h[?25l[24;65H5[11;7H[?12l[?25h[?25l[10;7H[106m([25C)[m[24;65H4[10;7H[?12l[?25h[?25l([25C)[24;65H3[9;7H[?12l[?25h[?25l[24;65H2,0-1[8;1H[?12l[?25h[?25l[24;65H1,7 [7;7H[?12l[?25h[?25l[2;39H[106m{[6;3H}[m[24;65H0,3[6;3H[?12l[?25h[?25l[2;39H{[6;3H}[24;64H39,7[5;7H[?12l[?25h[?25l[24;65H8[4;7H[?12l[?25h[?25l[24;65H7[3;7H[?12l[?25h[?25l[2;7H[106m([29C)[m[24;65H6[2;7H[?12l[?25h[?25l([29C)[24;65H5[1;7H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H printf([31m"Running"[m);[24;63H[K[24;63H234,7[9C47%[1;7H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H printf([31m"NetFPGA selftest [m[35m%s\n[m[31m"[m, SELFTEST_VERSION);[24;63H[K[24;63H233,7[9C47%[1;7H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [34m// Run the test in one-shot mode mode[m[24;63H[K[24;63H232,7[9C47%[1;7H[?12l[?25h[?25l[24;65H3[2;7H[?12l[?25h[?25l[24;65H4[3;7H[?12l[?25h[?25l[24;65H5[4;7H[?12l[?25h[?25l[5;7H[106m([29C)[m[24;65H6[5;7H[?12l[?25h[?25l([29C)[24;65H7[6;7H[?12l[?25h[?25l[24;65H8[7;7H[?12l[?25h[?25l[24;65H9[8;7H[?12l[?25h[?25l[5;39H[106m{[9;3H}[m[24;64H40,3[9;3H[?12l[?25h[?25l[5;39H{[9;3H}[24;65H1,7[10;7H[?12l[?25h[?25l[24;65H2,0-1[11;1H[?12l[?25h[?25l[24;65H3,7 [12;7H[?12l[?25h[?25l[13;7H[106m([25C)[m[24;65H4[13;7H[?12l[?25h[?25l([25C)[24;65H5[14;7H[?12l[?25h[?25l[24;65H6[15;7H[?12l[?25h[?25l[24;65H7[16;7H[?12l[?25h[?25l[24;65H8[17;7H[?12l[?25h[?25l[24;65H9[18;7H[?12l[?25h[?25l[24;64H50[19;7H[?12l[?25h[?25l[24;65H1,0-1[20;1H[?12l[?25h[?25l[24;65H2,7 [21;7H[?12l[?25h[?25l[24;65H3[22;7H[?12l[?25h[?25l[14;35H[106m{[23;5H}[m[24;65H4,5[23;5H[?12l[?25h[?25l[1;23r[23;1H
2326[1;24r[12;35H[106m{[m[13;35H{[22;5H}
2327 [106m}[m[24;63H[K[24;63H255,3[9C47%[23;3H[?12l[?25h[?25l[1;23r[23;1H
2328[1;24r[11;35H{[22;3H}[24;63H[K[24;63H256,0-1[7C47%[23;1H[?12l[?25h[?25l[11;35H[106m{[22;3H}[m[24;65H5,3 [22;3H[?12l[?25h[?25l[11;35H{[12;35H[106m{[21;5H}[m
2329 }[24;65H4,5[21;5H[?12l[?25h[?25l[12;35H{[21;5H}[24;65H3,7[20;7H[?12l[?25h[?25l[24;65H2[19;7H[?12l[?25h[?25l[24;65H1,0-1[18;1H[?12l[?25h[?25l[24;65H0,7 [17;7H[?12l[?25h[?25l[24;64H49[16;7H[?12l[?25h[?25l[24;65H8[15;7H[?12l[?25h[?25l[24;65H7[14;7H[?12l[?25h[?25l[24;65H6[13;7H[?12l[?25h[?25l[24;65H5[12;7H[?12l[?25h[?25l[11;7H[106m([25C)[m[24;65H4[11;7H[?12l[?25h[?25l([25C)[24;65H3[10;7H[?12l[?25h[?25l[24;65H2,0-1[9;1H[?12l[?25h[?25l[24;65H1,7 [8;7H[?12l[?25h[?25l[3;39H[106m{[7;3H}[m[24;65H0,3[7;3H[?12l[?25h[?25l[3;39H{[7;3H}[24;64H39,7[6;7H[?12l[?25h[?25l[24;65H8[5;7H[?12l[?25h[?25l[24;65H7[4;7H[?12l[?25h[?25l[3;7H[106m([29C)[m[24;65H6[3;7H[?12l[?25h[?25l([29C)[24;65H5[2;7H[?12l[?25h[?25l[24;65H4[1;7H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H printf([31m"NetFPGA selftest [m[35m%s\n[m[31m"[m, SELFTEST_VERSION);[24;63H[K[24;63H233,7[9C47%[1;7H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [34m// Run the test in one-shot mode mode[m[24;63H[K[24;63H232,7[9C47%[1;7H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H231,0-1[7C47%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H reset_continuous();[24;63H[K[24;63H230,7[9C46%[1;7H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H reset_board();[24;63H[K[24;63H229,7[9C46%[1;7H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [34m// Reset the board and initialize the tests[m[24;63H[K[24;63H228,7[9C46%[1;7H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H227,0-1[7C46%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32mint[m failed = [31m0[m;[24;63H[K[24;63H226,7[9C46%[1;7H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32mint[m i;[24;63H[K[24;63H225,7[9C45%[1;7H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H{[24;63H[K[24;63H224,1[9C45%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[32mvoid[m mainOneShot([32mvoid[m)[24;63H[K[24;63H223,7[9C45%[1;7H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m */[m[24;63H[K[24;63H222,3[9C45%[1;3H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m * "Main" function for one-shot mode[m[24;63H[K[24;63H221,7[9C44%[1;7H[?12l[?25h[?25l[24;65H2,3[2;3H[?12l[?25h[?25l[24;65H3,7[3;7H[?12l[?25h[?25l[24;65H4,1[4;1H[?12l[?25h[?25l[24;65H5,7[5;7H[?12l[?25h[?25l[24;65H6[6;7H[?12l[?25h[?25l[24;65H7,0-1[7;1H[?12l[?25h[?25l[24;65H8,7 [8;7H[?12l[?25h[?25l[24;65H9[9;7H[?12l[?25h[?25l[24;67H6[9;6H[?12l[?25h[?25l[24;67H5[9;5H[?12l[?25h[?25l[24;64H30[10;5H[?12l[?25h[?25l[24;67H4[10;4H[?12l[?25h[?25l[24;67H3[10;3H[?12l[?25h[?25l[24;1H/\<reset_continuous\>[24;63H[K[24;1H[27m[m[H[2J[1;1H[34m * Run the program in continuous mode
2330 */[m
2331[32mvoid[m run_continuous([32mvoid[m) {
2332 [32mint[m ch = ERR;
2333 [32mint[m count;
2334 [32mint[m prev_lines;
2335 [32mint[m prev_cols;
2336 [32mint[m i;
2337
2338 [34m// Reset the board and initialize the tests[m
2339 reset_board();
2340 reset_continuous();[15;2H [34m// Run the tests continuously and wait[m
2341 [38;5;130mwhile[m ([31m1[m) {
2342 [34m// Remember the screen dimensions[m
2343 prev_lines = LINES;
2344 prev_cols = COLS;[21;4H [34m// Clear the screen and move to the top corner[m
2345 erase();
2346 move([31m0[m,[31m0[m);[24;63H302,3[9C59%[12;3H[?12l[?25h[?25l[24;1H/\<reset_continuous\>[24;63H[K[24;1H[27m[m[H[2J[1;4H [38;5;130mif[m (continuous)[2;6H stop_continuous();[4;4H printf([31m"Caught SIGINT. Exiting...[m[35m\n[m[31m"[m);
2347 exit([31m0[m);
2348 }
2349}
2350
2351[34m/*
2352 * Invoke the reset functions for continuous mode
2353 */[m
2354[32mvoid[m reset_continuous([32mvoid[m) {
2355 [32mint[m i;
2356
2357 [38;5;130mfor[m (i = [31m0[m; i < NUM_TESTS; i++) {
2358 modules[i].reset_continuous();
2359 }
2360}
2361
2362[34m/*
2363 * Invoke the stop functions for continuous mode
2364 */[m
2365[32mvoid[m stop_continuous([32mvoid[m) {[24;63H383,6[9C75%[12;6H[?12l[?25h[?25l[24;63H[K[24;1H:[?12l[?25he[?25l[?12l[?25h[?25l [?12l[?25h#[?25l[?12l[?25h
2366[?25l"selftest_phy.c" 157L, 3955C[1;2H [34m// Read the individual port registers[m
2367 [38;5;130mfor[m (i = [31m0[m; i < NUM_PORTS; i++) {
2368 [34m// Start with the status register[m
2369 readReg(&nf2, PHY_TEST_PHY_0_RX_STATUS_REG + i * PHY_TEST_PHY_GROUP_INST_OFFF[5;1HSET, &port_status);
2370 [38;5;130mif[m ((port_status & [31m0x100[m) == [31m0[m) {
2371 good = [31m0[m;
2372 }[9;1H[K[10;1H [34m// Read the number of good/bad packets[m[10;43H[K[11;1H readReg(&nf2, PHY_TEST_PHY_0_RX_GOOD_PKT_CNT_REG + i * PHY_TEST_PHY_GROUP_INN[12;1HST_OFFSET, &good_pkts);[12;24H[K[13;2H readReg(&nf2, PHY_TEST_PHY_0_RX_ERR_PKT_CNT_REG + i * PHY_TEST_PHY_GROUP_INSS[14;1HT_OFFSET, &bad_pkts);[15;3H[K[16;4H [34m// Update the good flag[m[16;28H[K[17;2H [38;5;130mif[m (bad_pkts != [31m0[m) {
2373 good = [31m0[m;
2374 }
2375 }[21;1H[K[22;1H [38;5;130mreturn[m good;
2376} [34m// phyGetResult[m[23;18H[K[24;63H152,7[9CBot[18;7H[?12l[?25h[?25l[24;1H[K[24;1H/[?12l[?25hr[?25l[?12l[?25he[?25l[?12l[?25hs[?25l[?12l[?25he[?25l[?12l[?25ht[?25l[?12l[?25h_[?25l[?12l[?25hc[?25l[?12l[?25ho[?25l[?12l[?25hn[?25l[?12l[?25h
2377[?25l[31msearch hit BOTTOM, continuing at TOP[m
2378[97m[41mE486: Pattern not found: reset_con[m[24;35H[K[24;63H152,7[9CBot[18;7H[?12l[?25h[?25l[24;1H[K[24;1H:[?12l[?25h1[?25l[?12l[?25h
2379[?25l[27m[m[H[2J[1;1H[34m/* ****************************************************************************
2380 * vim:set shiftwidth=2 softtabstop=2 expandtab:
2381 * $Id: selftest_phy.c 5971 2010-03-06 06:44:56Z grg $
2382 *
2383 * Module: selftest_phy.c
2384 * Project: NetFPGA selftest
2385 * Description: SATA selftest module
2386 *
2387 * Change history:
2388 *
2389 */[m
2390
2391[35m#include [m[31m"../lib/C/reg_defines_selftest.h"[m
2392[35m#include [m[31m"selftest.h"[m
2393[35m#include [m[31m"selftest_phy.h"[m
2394[35m#include [m[31m<curses.h>[m
2395[35m#include [m[31m<time.h>[m
2396
2397[35m#define NUM_PORTS [m[31m4[m
2398
2399[32mstatic[m [32mint[m prev_good_pkts[NUM_PORTS];
2400[32mstatic[m [32mint[m prev_bad_pkts[NUM_PORTS];[24;63H1,1[11CTop[1;1H[?12l[?25h[?25l[24;63H2[2;1H[?12l[?25h[?25l[24;63H3[3;1H[?12l[?25h[?25l[24;63H4[4;1H[?12l[?25h[?25l[24;63H5[5;1H[?12l[?25h[?25l[24;63H6[6;1H[?12l[?25h[?25l[24;63H7[7;1H[?12l[?25h[?25l[24;63H8[8;1H[?12l[?25h[?25l[24;63H9[9;1H[?12l[?25h[?25l[24;63H10,1[10;1H[?12l[?25h[?25l[24;64H1[11;1H[?12l[?25h[?25l[24;64H2,0-1[12;1H[?12l[?25h[?25l[24;64H3,1 [13;1H[?12l[?25h[?25l[24;64H4[14;1H[?12l[?25h[?25l[24;64H5[15;1H[?12l[?25h[?25l[24;64H6[16;1H[?12l[?25h[?25l[24;64H7[17;1H[?12l[?25h[?25l[24;64H8,0-1[18;1H[?12l[?25h[?25l[24;64H9,1 [19;1H[?12l[?25h[?25l[24;63H20,0-1[20;1H[?12l[?25h[?25l[24;64H1,1 [21;1H[?12l[?25h[?25l[24;64H2[22;1H[?12l[?25h[?25l[24;64H3,0-1[23;1H[?12l[?25h[?25l[1;23r[23;1H
2401[1;24r[23;1H[34m/*[m[24;63H[K[24;63H24,1[11C0%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2402[1;24r[23;1H[34m * Reset the interface and configure it for continuous operation[m[24;63H[K[24;63H25,1[11C1%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2403[1;24r[23;1H[34m */[m[24;63H[K[24;63H26,1[11C2%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2404[1;24r[23;1H[32mvoid[m phyResetContinuous([32mvoid[m) {[24;63H[K[24;63H27,1[11C2%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2405[1;24r[23;2H [32mint[m i;[24;63H[K[24;63H28,1[11C3%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2406[1;24r[24;63H[K[24;63H29,0-1[9C4%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2407[1;24r[23;2H [38;5;130mfor[m (i = [31m0[m; i < NUM_PORTS; i++) {[24;63H[K[24;63H30,1[11C5%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2408[1;24r[23;4H prev_good_pkts[i] = [31m0[m;[24;63H[K[24;63H31,1[11C5%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2409[1;24r[23;4H prev_bad_pkts[i] = [31m0[m;[24;63H[K[24;63H32,1[11C6%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2410[1;24r[23;2H }[24;63H[K[24;63H33,1[11C7%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2411[1;24r[24;63H[K[24;63H34,0-1[9C8%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2412[1;24r[23;2H [34m// Stop the test (and wait for the test to stop)[m[24;63H[K[24;63H35,1[11C8%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2413[1;24r[23;2H writeReg(&nf2, PHY_TEST_CTRL_REG, [31m0x0[m);[24;63H[K[24;63H36,1[11C9%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2414[1;24r[23;2H sleep([31m1[m);[24;63H[K[24;63H37,1[10C10%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2415[1;24r[24;63H[K[24;63H38,0-1[8C11%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2416[1;24r[23;2H writeReg(&nf2, PHY_TEST_PATTERN_REG, PHY_TEST_PATTERN_ENABLE_MASK);[24;63H[K[24;63H39,1[10C11%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2417[1;24r[24;63H[K[24;63H40,0-1[8C12%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2418[1;24r[23;2H [34m// Start the test[m[24;63H[K[24;63H41,1[10C13%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2419[1;24r[23;2H writeReg(&nf2, PHY_TEST_CTRL_REG, PHY_TEST_CTRL_REPEAT);[24;63H[K[24;63H42,1[10C14%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2420[1;24r[7;31H[106m{[23;1H}[m [34m// phyResetContinuous[m[24;63H[K[24;63H43,1[10C14%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2421[1;24r[6;31H{[22;1H}[24;63H[K[24;63H44,0-1[8C15%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2422[1;24r[23;1H[34m/*[m[24;63H[K[24;63H45,1[10C16%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2423[1;24r[23;1H[34m * Show the status of the SATA test when running in continuous mode[m[24;63H[K[24;63H46,1[10C17%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2424[1;24r[23;1H[34m *[m[24;63H[K[24;63H47,1[10C17%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2425[1;24r[23;1H[34m * Return -- boolean indicating success[m[24;63H[K[24;63H48,1[10C18%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2426[1;24r[23;1H[34m */[m[24;63H[K[24;63H49,1[10C19%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2427[1;24r[23;1H[32mint[m phyShowStatusContinuous([32mvoid[m) {[24;63H[K[24;63H50,1[10C20%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2428[1;24r[23;2H [32munsigned[m [32mint[m val;[24;63H[K[24;63H51,1[10C20%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2429[1;24r[23;2H [32munsigned[m [32mint[m port_status;[24;63H[K[24;63H52,1[10C21%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2430[1;24r[23;2H [32munsigned[m [32mint[m good_pkts;[24;63H[K[24;63H53,1[10C22%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2431[1;24r[23;2H [32munsigned[m [32mint[m bad_pkts;[24;63H[K[24;63H54,1[10C23%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2432[1;24r[24;63H[K[24;63H55,0-1[8C23%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2433[1;24r[23;2H [32mint[m i;[24;63H[K[24;63H56,1[10C24%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2434[1;24r[24;63H[K[24;63H57,0-1[8C25%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2435[1;24r[23;2H [32mint[m x, y;[24;63H[K[24;63H58,1[10C26%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2436[1;24r[24;63H[K[24;63H59,0-1[8C26%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2437[1;24r[23;2H [32mint[m good = [31m1[m;[24;63H[K[24;63H60,1[10C27%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2438[1;24r[24;63H[K[24;63H61,0-1[8C28%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2439[1;24r[23;2H [34m// Store the current screen position[m[24;63H[K[24;63H62,1[10C29%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2440[1;24r[23;2H getyx(stdscr, y, x);[24;63H[K[24;63H63,1[10C29%[23;1H[?12l[?25h[?25l[24;64H2[22;1H[?12l[?25h[?25l[24;64H1,0-1[21;1H[?12l[?25h[?25l[24;64H0,1 [20;1H[?12l[?25h[?25l[24;63H59,0-1[19;1H[?12l[?25h[?25l[24;64H8,1 [18;1H[?12l[?25h[?25l[24;64H7,0-1[17;1H[?12l[?25h[?25l[24;64H6,1 [16;1H[?12l[?25h[?25l[24;64H5,0-1[15;1H[?12l[?25h[?25l[24;64H4,1 [14;1H[?12l[?25h[?25l[24;64H3[13;1H[?12l[?25h[?25l[24;64H2[12;1H[?12l[?25h[?25l[24;64H1[11;1H[?12l[?25h[?25l[24;64H0[10;1H[?12l[?25h[?25l[24;63H49[9;1H[?12l[?25h[?25l[24;64H8[8;1H[?12l[?25h[?25l[24;64H7[7;1H[?12l[?25h[?25l[24;64H6[6;1H[?12l[?25h[?25l[24;64H5[5;1H[?12l[?25h[?25l[24;64H4,0-1[4;1H[?12l[?25h[?25l[24;64H3,1 [3;1H[?12l[?25h[?25l[24;64H2[2;1H[?12l[?25h[?25l[24;64H1[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H40,0-1[8C29%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H writeReg(&nf2, PHY_TEST_PATTERN_REG, PHY_TEST_PATTERN_ENABLE_MASK);[24;63H[K[24;63H39,1[10C28%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H38,0-1[8C27%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H sleep([31m1[m);[24;63H[K[24;63H37,1[10C26%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H writeReg(&nf2, PHY_TEST_CTRL_REG, [31m0x0[m);[24;63H[K[24;63H36,1[10C26%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [34m// Stop the test (and wait for the test to stop)[m[24;63H[K[24;63H35,1[10C25%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H34,0-1[8C24%[1;1H[?12l[?25h[?25l[24;64H5,1 [2;1H[?12l[?25h[?25l[24;64H6[3;1H[?12l[?25h[?25l[24;64H7[4;1H[?12l[?25h[?25l[24;64H8,0-1[5;1H[?12l[?25h[?25l[24;64H9,1 [6;1H[?12l[?25h[?25l[24;63H40,0-1[7;1H[?12l[?25h[?25l[24;64H1,1 [8;1H[?12l[?25h[?25l[24;64H2[9;1H[?12l[?25h[?25l[24;64H3[10;1H[?12l[?25h[?25l[24;64H4,0-1[11;1H[?12l[?25h[?25l[24;64H5,1 [12;1H[?12l[?25h[?25l[24;64H6[13;1H[?12l[?25h[?25l[24;64H7[14;1H[?12l[?25h[?25l[24;64H8[15;1H[?12l[?25h[?25l[24;64H9[16;1H[?12l[?25h[?25l[24;63H50[17;1H[?12l[?25h[?25l[24;64H1[18;1H[?12l[?25h[?25l[24;64H2[19;1H[?12l[?25h[?25l[24;64H3[20;1H[?12l[?25h[?25l[24;64H4[21;1H[?12l[?25h[?25l[24;64H5,0-1[22;1H[?12l[?25h[?25l[24;64H6,1 [23;1H[?12l[?25h[?25l[1;23r[23;1H
2441[1;24r[24;63H[K[24;63H57,0-1[8C25%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2442[1;24r[23;2H [32mint[m x, y;[24;63H[K[24;63H58,1[10C26%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2443[1;24r[24;63H[K[24;63H59,0-1[8C26%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2444[1;24r[23;2H [32mint[m good = [31m1[m;[24;63H[K[24;63H60,1[10C27%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2445[1;24r[24;63H[K[24;63H61,0-1[8C28%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2446[1;24r[23;2H [34m// Store the current screen position[m[24;63H[K[24;63H62,1[10C29%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2447[1;24r[23;2H getyx(stdscr, y, x);[24;63H[K[24;63H63,1[10C29%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2448[1;24r[24;63H[K[24;63H64,0-1[8C30%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2449[1;24r[23;2H [34m// Move down a line[m[24;63H[K[24;63H65,1[10C31%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2450[1;24r[23;2H move(y + [31m1[m, x);[24;63H[K[24;63H66,1[10C32%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2451[1;24r[24;63H[K[24;63H67,0-1[8C32%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2452[1;24r[23;2H [34m// Read the individual port registers[m[24;63H[K[24;63H68,1[10C33%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2453[1;24r[23;2H [38;5;130mfor[m (i = [31m0[m; i < NUM_PORTS; i++) {[24;63H[K[24;63H69,1[10C34%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2454[1;24r[23;4H printw([31m" Port [m[35m%d[m[31m:"[m, i + [31m1[m);[24;63H[K[24;63H70,1[10C35%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2455[1;24r[24;63H[K[24;63H71,0-1[8C35%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2456[1;24r[23;4H [34m// Start with the status register[m[24;63H[K[24;63H72,1[10C36%[23;1H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H readReg(&nf2, PHY_TEST_PHY_0_RX_STATUS_REG + i * PHY_TEST_PHY_GROUP_INST_OFFF[23;1HSET, &port_status);[24;63H[K[24;63H73,1[10C37%[22;1H[?12l[?25h[?25l[1;23r[23;1H
2457[1;24r[23;4H [38;5;130mif[m (port_status & [31m0x100[m) {[24;63H[K[24;63H74,1[10C38%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2458[1;24r[23;6H printw([31m" link w/ [m[35m%d[m[31m"[m, (port_status & [31m0xf0000[m) >> [31m16[m);[24;63H[K[24;63H75,1[10C39%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2459[1;24r[23;4H }[24;63H[K[24;63H76,1[10C40%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2460[1;24r[23;4H [38;5;130melse[m {[24;63H[K[24;63H77,1[10C40%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2461[1;24r[23;6H printw([31m" no link"[m);[24;63H[K[24;63H78,1[10C41%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2462[1;24r[23;6H good = [31m0[m;[24;63H[K[24;63H79,1[10C42%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2463[1;24r[23;4H }[24;63H[K[24;63H80,1[10C42%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2464[1;24r[24;63H[K[24;63H81,0-1[8C43%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2465[1;24r[23;4H [34m// Read the number of good/bad packets[m[24;63H[K[24;63H82,1[10C44%[23;1H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H readReg(&nf2, PHY_TEST_PHY_0_RX_GOOD_PKT_CNT_REG + i * PHY_TEST_PHY_GROUP_INN[23;1HST_OFFSET, &good_pkts);[24;63H[K[24;63H83,1[10C45%[22;1H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H readReg(&nf2, PHY_TEST_PHY_0_RX_ERR_PKT_CNT_REG + i * PHY_TEST_PHY_GROUP_INN[23;1HST_OFFSET, &bad_pkts);[24;63H[K[24;63H84,1[10C46%[22;1H[?12l[?25h[?25l[1;23r[23;1H
2466[1;24r[23;4H printw([31m" Good: [m[35m%d[m[31m Bad: [m[35m%d[m[31m"[m, good_pkts, bad_pkts);[24;63H[K[24;63H85,1[10C47%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2467[1;24r[24;63H[K[24;63H86,0-1[8C48%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2468[1;24r[23;4H printw([31m"[m[35m\n[m[31m"[m);[24;63H[K[24;63H87,1[10C48%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2469[1;24r[24;63H[K[24;63H88,0-1[8C49%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2470[1;24r[23;4H [34m// Verify if we should reset the counters[m[24;63H[K[24;63H89,1[10C50%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2471[1;24r[23;4H [34m/*if ((port_status & 0x1100) == 0x1100) {[m[24;63H[K[24;63H90,1[10C51%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2472[1;24r[23;1H[34m // Only reset if the number of good packets has incremented but the bad[m[24;63H[K[24;63H91,1[10C51%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2473[1;24r[23;1H[34m // packets have remained the same[m[24;63H[K[24;63H92,1[10C52%[23;1H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;1H[34m if (bad_pkts == prev_bad_pkts[i] && good_pkts != prev_good_pkts[i]) {
2474 writeReg(&nf2, PHY_TEST_PHY_0_RX_CTRL_REG + i * PHY_TEST_PHY_GROUP_INST_[m[23;1H[94m@ [m[24;63H[K[24;63H93,1[10C53%[22;1H[?12l[?25h[?25l[1;23r[23;1H
2475[1;24r[22;1H[34m writeReg(&nf2, PHY_TEST_PHY_0_RX_CTRL_REG + i * PHY_TEST_PHY_GROUP_INST__[23;1HOFFSET, 0x3);[m[24;63H[K[24;63H94,1[10C54%[22;1H[?12l[?25h[?25l[1;23r[23;1H
2476[1;24r[23;1H[34m }[m[24;63H[K[24;63H95,1[10C54%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2477[1;24r[24;63H[K[24;63H96,0-1[8C55%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2478[1;24r[23;1H[34m // Update the counters[m[24;63H[K[24;63H97,1[10C56%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2479[1;24r[23;1H[34m prev_bad_pkts[i] = bad_pkts;[m[24;63H[K[24;63H98,1[10C56%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2480[1;24r[23;1H[34m prev_good_pkts[i] = good_pkts;[m[24;63H[K[24;63H99,1[10C57%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2481[1;24r[23;1H[34m }*/[m[24;63H[K[24;63H100,1[9C58%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2482[1;24r[24;63H[K[24;63H101,0-1[7C59%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2483[1;24r[23;4H [34m// Update the good flag[m[24;63H[K[24;63H102,1[9C59%[23;1H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H [38;5;130mif[m (bad_pkts != [31m0[m)[23;6H good = [31m0[m;[24;63H[K[24;63H103,1[9C61%[22;1H[?12l[?25h[?25l[24;65H4[23;1H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;2H }[24;63H[K[24;63H105,1[9C62%[22;1H[?12l[?25h[?25l[24;65H6,0-1[23;1H[?12l[?25h[?25l[1;23r[23;1H
2484[1;24r[23;2H [34m// Print overall success/failure[m[24;63H[K[24;63H107,1[9C62%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2485[1;24r[23;2H move(y, x);[24;63H[K[24;63H108,1[9C63%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2486[1;24r[23;2H printw([31m"PHY test: [m[35m%s[m[31m"[m, good ? [31m"pass"[m : [31m"fail"[m);[24;63H[K[24;63H109,1[9C64%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2487[1;24r[23;2H move(y + [31m1[m + NUM_PORTS, x);[24;63H[K[24;63H110,1[9C65%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2488[1;24r[24;63H[K[24;63H111,0-1[7C65%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2489[1;24r[23;2H [38;5;130mreturn[m good;[24;63H[K[24;63H112,1[9C66%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2490[1;24r[23;1H} [34m// phyShowStatusContinuous[m[24;63H[K[24;63H113,1[9C67%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2491[1;24r[24;63H[K[24;63H114,0-1[7C68%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2492[1;24r[23;1H[34m/*[m[24;63H[K[24;63H115,1[9C68%[23;1H[?12l[?25h[?25l[24;65H4,0-1[22;1H[?12l[?25h[?25l[24;65H3,1 [21;1H[?12l[?25h[?25l[24;65H4,0-1[22;1H[?12l[?25h[?25l[24;65H5,1 [23;1H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;1H[34m * Stop the interface
2493 */[m[24;63H[K[24;63H116,1[9C70%[22;1H[?12l[?25h[?25l[24;65H7[23;1H[?12l[?25h[?25l[1;23r[23;1H
2494[1;24r[23;1H[32mvoid[m phyStopContinuous([32mvoid[m) {[24;63H[K[24;63H118,1[9C70%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2495[1;24r[23;2H [34m// Stop the test (and wait for the test to stop)[m[24;63H[K[24;63H119,1[9C71%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2496[1;24r[23;2H writeReg(&nf2, PHY_TEST_CTRL_REG, [31m0x00000000[m);[24;63H[K[24;63H120,1[9C72%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2497[1;24r[20;30H[106m{
2498
2499
2500}[m [34m// phyStopContinuous[m[24;63H[K[24;63H121,1[9C73%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2501[1;24r[19;30H{
2502
2503
2504}[24;63H[K[24;63H122,0-1[7C73%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2505[1;24r[23;1H[34m/*[m[24;63H[K[24;63H123,1[9C74%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2506[1;24r[23;1H[34m * Get the result of the test[m[24;63H[K[24;63H124,1[9C75%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2507[1;24r[23;1H[34m *[m[24;63H[K[24;63H125,1[9C76%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2508[1;24r[23;1H[34m * Return -- boolean indicating success[m[24;63H[K[24;63H126,1[9C76%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2509[1;24r[23;1H[34m */[m[24;63H[K[24;63H127,1[9C77%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2510[1;24r[23;1H[32mint[m phyGetResult([32mvoid[m) {[24;63H[K[24;63H128,1[9C78%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2511[1;24r[23;2H [32munsigned[m [32mint[m val;[24;63H[K[24;63H129,1[9C79%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2512[1;24r[23;2H [32munsigned[m [32mint[m port_status;[24;63H[K[24;63H130,1[9C79%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2513[1;24r[23;2H [32munsigned[m [32mint[m good_pkts;[24;63H[K[24;63H131,1[9C80%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2514[1;24r[23;2H [32munsigned[m [32mint[m bad_pkts;[24;63H[K[24;63H132,1[9C81%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2515[1;24r[24;63H[K[24;63H133,0-1[7C82%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2516[1;24r[23;2H [32mint[m i;[24;63H[K[24;63H134,1[9C82%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2517[1;24r[24;63H[K[24;63H135,0-1[7C83%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2518[1;24r[23;2H [32mint[m good = [31m1[m;[24;63H[K[24;63H136,1[9C84%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2519[1;24r[24;63H[K[24;63H137,0-1[7C85%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2520[1;24r[23;2H [34m// Read the individual port registers[m[24;63H[K[24;63H138,1[9C85%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2521[1;24r[23;2H [38;5;130mfor[m (i = [31m0[m; i < NUM_PORTS; i++) {[24;63H[K[24;63H139,1[9C86%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2522[1;24r[23;4H [34m// Start with the status register[m[24;63H[K[24;63H140,1[9C87%[23;1H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H readReg(&nf2, PHY_TEST_PHY_0_RX_STATUS_REG + i * PHY_TEST_PHY_GROUP_INST_OFFF[23;1HSET, &port_status);[24;63H[K[24;63H141,1[9C88%[22;1H[?12l[?25h[?25l[1;23r[23;1H
2523[1;24r[23;4H [38;5;130mif[m ((port_status & [31m0x100[m) == [31m0[m) {[24;63H[K[24;63H142,1[9C88%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2524[1;24r[23;6H good = [31m0[m;[24;63H[K[24;63H143,1[9C89%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2525[1;24r[23;4H }[24;63H[K[24;63H144,1[9C90%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2526[1;24r[24;63H[K[24;63H145,0-1[7C91%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2527[1;24r[23;4H [34m// Read the number of good/bad packets[m[24;63H[K[24;63H146,1[9C91%[23;1H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H readReg(&nf2, PHY_TEST_PHY_0_RX_GOOD_PKT_CNT_REG + i * PHY_TEST_PHY_GROUP_INN[23;1HST_OFFSET, &good_pkts);[24;63H[K[24;63H147,1[9C92%[22;1H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H readReg(&nf2, PHY_TEST_PHY_0_RX_ERR_PKT_CNT_REG + i * PHY_TEST_PHY_GROUP_INSS[23;1HT_OFFSET, &bad_pkts);[24;63H[K[24;63H148,1[9C93%[22;1H[?12l[?25h[?25l[1;23r[23;1H
2528[1;24r[24;63H[K[24;63H149,0-1[7C94%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2529[1;24r[23;4H [34m// Update the good flag[m[24;63H[K[24;63H150,1[9C94%[23;1H[?12l[?25h[?25l[24;64H49,0-1[22;1H[?12l[?25h[?25l[24;65H8,1 [20;1H[?12l[?25h[?25l[24;65H7[18;1H[?12l[?25h[?25l[24;65H6[17;1H[?12l[?25h[?25l[24;65H5,0-1[16;1H[?12l[?25h[?25l[24;65H4,1 [15;1H[?12l[?25h[?25l[24;65H3[14;1H[?12l[?25h[?25l[24;65H2[13;1H[?12l[?25h[?25l[24;65H1[11;1H[?12l[?25h[?25l[24;65H0[10;1H[?12l[?25h[?25l[24;64H39[9;1H[?12l[?25h[?25l[24;65H8[8;1H[?12l[?25h[?25l[24;65H7,0-1[7;1H[?12l[?25h[?25l[24;65H6,1 [6;1H[?12l[?25h[?25l[24;65H5,0-1[5;1H[?12l[?25h[?25l[24;65H4,1 [4;1H[?12l[?25h[?25l[24;65H3,0-1[3;1H[?12l[?25h[?25l[24;65H2,1 [2;1H[?12l[?25h[?25l[24;65H1[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32munsigned[m [32mint[m port_status;[24;63H[K[24;63H130,1[9C94%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32munsigned[m [32mint[m val;[24;63H[K[24;63H129,1[9C93%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[32mint[m phyGetResult([32mvoid[m) {[23;1H[94m@ [m[24;63H[K[24;63H128,1[9C92%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m */[m[24;63H[K[24;63H127,1[9C92%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m * Return -- boolean indicating success[m[23;1H[94m@ [m[24;63H[K[24;63H126,1[9C91%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m *[m[24;63H[K[24;63H125,1[9C91%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m * Get the result of the test[m[24;63H[K[24;63H124,1[9C91%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m/*[m[24;63H[K[24;63H123,1[9C90%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H122,0-1[7C89%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H} [34m// phyStopContinuous[m[24;63H[K[24;63H121,1[9C88%[1;1H[?12l[?25h[?25l[24;65H2,0-1[2;1H[?12l[?25h[?25l[24;65H3,1 [3;1H[?12l[?25h[?25l[24;65H4[4;1H[?12l[?25h[?25l[24;65H5[5;1H[?12l[?25h[?25l[24;65H6[6;1H[?12l[?25h[?25l[24;65H7[7;1H[?12l[?25h[?25l[24;65H8[8;1H[?12l[?25h[?25l[24;65H9[9;1H[?12l[?25h[?25l[24;64H30[10;1H[?12l[?25h[?25l[24;65H1[11;1H[?12l[?25h[?25l[24;65H2[12;1H[?12l[?25h[?25l[24;65H3,0-1[13;1H[?12l[?25h[?25l[24;65H4,1 [14;1H[?12l[?25h[?25l[24;65H5,0-1[15;1H[?12l[?25h[?25l[24;65H6,1 [16;1H[?12l[?25h[?25l[24;65H7,0-1[17;1H[?12l[?25h[?25l[24;65H8,1 [18;1H[?12l[?25h[?25l[24;65H9[19;1H[?12l[?25h[?25l[24;64H40[20;1H[?12l[?25h[?25l[24;65H1[21;1H[?12l[?25h[?25l[24;65H2[23;1H[?12l[?25h[?25l[1;23r[23;1H
2530[1;24r[23;6H good = [31m0[m;[24;63H[K[24;63H143,1[9C89%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2531[1;24r[23;4H }[24;63H[K[24;63H144,1[9C90%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2532[1;24r[24;63H[K[24;63H145,0-1[7C91%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2533[1;24r[23;4H [34m// Read the number of good/bad packets[m[24;63H[K[24;63H146,1[9C91%[23;1H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H readReg(&nf2, PHY_TEST_PHY_0_RX_GOOD_PKT_CNT_REG + i * PHY_TEST_PHY_GROUP_INN[23;1HST_OFFSET, &good_pkts);[24;63H[K[24;63H147,1[9C92%[22;1H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H readReg(&nf2, PHY_TEST_PHY_0_RX_ERR_PKT_CNT_REG + i * PHY_TEST_PHY_GROUP_INSS[23;1HT_OFFSET, &bad_pkts);[24;63H[K[24;63H148,1[9C93%[22;1H[?12l[?25h[?25l[1;23r[23;1H
2534[1;24r[24;63H[K[24;63H149,0-1[7C94%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2535[1;24r[23;4H [34m// Update the good flag[m[24;63H[K[24;63H150,1[9C94%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2536[1;24r[23;4H [38;5;130mif[m (bad_pkts != [31m0[m) {[24;63H[K[24;63H151,1[9C95%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2537[1;24r[23;6H good = [31m0[m;[24;63H[K[24;63H152,1[9C96%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2538[1;24r[23;4H }[24;63H[K[24;63H153,1[9C97%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2539[1;24r[23;2H }[24;63H[K[24;63H154,1[9C97%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2540[1;24r[24;63H[K[24;63H155,0-1[7C98%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2541[1;24r[23;2H [38;5;130mreturn[m good;[24;63H[K[24;63H156,1[9C99%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2542[1;24r[23;1H} [34m// phyGetResult[m[24;63H[K[24;63H157,1[9CBot[23;1H[?12l[?25h[?25l[24;65H6[22;1H[?12l[?25h[?25l[24;65H5,0-1[21;1H[?12l[?25h[?25l[24;65H4,1 [20;1H[?12l[?25h[?25l[24;65H3[19;1H[?12l[?25h[?25l[24;65H2[18;1H[?12l[?25h[?25l[24;65H1[17;1H[?12l[?25h[?25l[24;65H0[16;1H[?12l[?25h[?25l[24;64H49,0-1[15;1H[?12l[?25h[?25l[24;65H8,1 [13;1H[?12l[?25h[?25l[24;65H7[11;1H[?12l[?25h[?25l[24;65H6[10;1H[?12l[?25h[?25l[24;65H5,0-1[9;1H[?12l[?25h[?25l[24;65H4,1 [8;1H[?12l[?25h[?25l[24;65H3[7;1H[?12l[?25h[?25l[24;65H2[6;1H[?12l[?25h[?25l[24;65H1[4;1H[?12l[?25h[?25l[24;65H0[3;1H[?12l[?25h[?25l[24;64H39[2;1H[?12l[?25h[?25l[24;65H8[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H137,0-1[7C99%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32mint[m good = [31m1[m;[24;63H[K[24;63H136,1[9C98%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H135,0-1[7C97%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32mint[m i;[24;63H[K[24;63H134,1[9C97%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H133,0-1[7C96%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32munsigned[m [32mint[m bad_pkts;[24;63H[K[24;63H132,1[9C95%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32munsigned[m [32mint[m good_pkts;[24;63H[K[24;63H131,1[9C94%[1;1H[?12l[?25h[?25l[24;65H2[2;1H[?12l[?25h[?25l[24;65H3,0-1[3;1H[?12l[?25h[?25l[24;65H4,1 [4;1H[?12l[?25h[?25l[24;65H5,0-1[5;1H[?12l[?25h[?25l[24;65H6,1 [6;1H[?12l[?25h[?25l[24;65H7,0-1[7;1H[?12l[?25h[?25l[24;65H8,1 [8;1H[?12l[?25h[?25l[24;65H9[9;1H[?12l[?25h[?25l[24;64H40[10;1H[?12l[?25h[?25l[24;65H1[11;1H[?12l[?25h[?25l[24;65H2[13;1H[?12l[?25h[?25l[24;65H3[14;1H[?12l[?25h[?25l[24;65H4[15;1H[?12l[?25h[?25l[24;65H5,0-1[16;1H[?12l[?25h[?25l[24;65H6,1 [17;1H[?12l[?25h[?25l[24;65H7[18;1H[?12l[?25h[?25l[24;65H8[20;1H[?12l[?25h[?25l[24;65H9,0-1[22;1H[?12l[?25h[?25l[24;64H50,1 [23;1H[?12l[?25h[?25l[1;23r[23;1H
2543[1;24r[23;4H [38;5;130mif[m (bad_pkts != [31m0[m) {[24;63H[K[24;63H151,1[9C95%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2544[1;24r[23;6H good = [31m0[m;[24;63H[K[24;63H152,1[9C96%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2545[1;24r[23;4H }[24;63H[K[24;63H153,1[9C97%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2546[1;24r[23;2H }[24;63H[K[24;63H154,1[9C97%[23;1H[?12l[?25h[?25l[24;65H3[22;1H[?12l[?25h[?25l[24;65H2[21;1H[?12l[?25h[?25l[24;65H1[20;1H[?12l[?25h[?25l[24;65H0[19;1H[?12l[?25h[?25l[24;64H49,0-1[18;1H[?12l[?25h[?25l[24;65H8,1 [16;1H[?12l[?25h[?25l[24;65H7[14;1H[?12l[?25h[?25l[24;65H6[13;1H[?12l[?25h[?25l[24;65H5,0-1[12;1H[?12l[?25h[?25l[24;65H4,1 [11;1H[?12l[?25h[?25l[24;65H3[10;1H[?12l[?25h[?25l[24;65H2[9;1H[?12l[?25h[?25l[24;65H1[7;1H[?12l[?25h[?25l[24;65H0[6;1H[?12l[?25h[?25l[24;64H39[5;1H[?12l[?25h[?25l[24;65H8[4;1H[?12l[?25h[?25l[24;65H7,0-1[3;1H[?12l[?25h[?25l[24;65H6,1 [2;1H[?12l[?25h[?25l[24;65H5,0-1[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32mint[m i;[24;63H[K[24;63H134,1[9C97%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[24;63H[K[24;63H133,0-1[7C96%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32munsigned[m [32mint[m bad_pkts;[24;63H[K[24;63H132,1[9C95%[1;1H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32munsigned[m [32mint[m good_pkts;[24;63H[K[24;63H131,1[9C94%[1;1H[?12l[?25h[?25l[24;65H2[2;1H[?12l[?25h[?25l[24;65H3,0-1[3;1H[?12l[?25h[?25l[24;65H4,1 [4;1H[?12l[?25h[?25l[24;65H5,0-1[5;1H[?12l[?25h[?25l[24;65H6,1 [6;1H[?12l[?25h[?25l[24;65H7,0-1[7;1H[?12l[?25h[?25l[24;65H8,1 [8;1H[?12l[?25h[?25l[24;65H9[9;1H[?12l[?25h[?25l[24;64H40[10;1H[?12l[?25h[?25l[24;65H1[11;1H[?12l[?25h[?25l[24;65H2[13;1H[?12l[?25h[?25l[24;65H3[14;1H[?12l[?25h[?25l[24;65H2[13;1H[?12l[?25h[?25l[36C[106m{[15;5H}[m[24;67H37[13;37H[?12l[?25h[?25l[24;1H[1m-- INSERT --[m[24;63H[K[24;63H143,1[9C94%[14;23r[14;1H[L[1;24r[15;5H[106m [m[24;63H[K[24;63H143,1[9C94%[13;37H{[15;5H
2547 }[14;1H[?12l[?25h[?25l[24;67H2-9[14;9H[?12l[?25h[?25l[24;67H1 [14;1H[?12l[?25h[?25l[24;67H2-9[14;9H[?12l[?25h[?25l /[24;67H3-10[14;10H[?12l[?25h[?25l[34m//[m[24;67H4-11[14;11H[?12l[?25h[?25l[34m/K[m[24;67H5-12[14;12H[?12l[?25h[?25l[34mKi[m[24;67H6-13[14;13H[?12l[?25h[?25l[34mir[m[24;67H7-14[14;14H[?12l[?25h[?25l[34mra[m[24;67H8-15[14;15H[?12l[?25h[?25l[34man[m[24;67H9-16[14;16H[?12l[?25h[?25l[15;23r[15;1H[L[1;24r[24;63H[K[24;63H144,1[9C93%[15;1H[?12l[?25h[?25l[24;67H2-9[15;9H[?12l[?25h[?25l p[24;67H3-10[15;10H[?12l[?25h[?25lpr[24;67H4-11[15;11H[?12l[?25h[?25lri[24;67H5-12[15;12H[?12l[?25h[?25lin[24;67H6-13[15;13H[?12l[?25h[?25lnt[24;67H7-14[15;14H[?12l[?25h[?25ltw[24;67H8-15[15;15H[?12l[?25h[?25lw([17;5H[97m[101m}[m[24;67H9-16[15;16H[?12l[?25h[?25l([31m"
2548 good = 0;
2549 }
2550
2551 // Read the number of good/bad packets
2552 readReg(&nf2, PHY_TEST_PHY_0_RX_GOOD_PKT_CNT_REG + i * PHY_TEST_PHY_GROUP_INN[21;1HST_OFFSET, &good_pkts);
2553 readReg(&nf2, PHY_TEST_PHY_0_RX_ERR_PKT_CNT_REG + i * PHY_TEST_PHY_GROUP_INSS[23;1HT_OFFSET, &bad_pkts);[m[24;67H10-17[15;17H[?12l[?25h[?25l[31m"P[m[24;68H1-18[15;18H[?12l[?25h[?25l[31mPh[m[24;68H2-19[15;19H[?12l[?25h[?25l[31mhy[m[24;68H3-20[15;20H[?12l[?25h[?25l[31myG[m[24;68H4-21[15;21H[?12l[?25h[?25l[31mGe[m[24;68H5-22[15;22H[?12l[?25h[?25l[31met[m[24;68H6-23[15;23H[?12l[?25h[?25l[31mtR[m[24;68H7-24[15;24H[?12l[?25h[?25l[31mRe[m[24;68H8-25[15;25H[?12l[?25h[?25l[31mes[m[24;68H9-26[15;26H[?12l[?25h[?25l[31msu[m[24;67H20-27[15;27H[?12l[?25h[?25l[31mul[m[24;68H1-28[15;28H[?12l[?25h[?25l[31mlt[m[24;68H2-29[15;29H[?12l[?25h[24;1H[K[15;28H[?25l[24;63H144,21-28 93%[15;28H[?12l[?25h[?25l[24;65H3,8-15 [14;15H[?12l[?25h[?25l[24;65H2,28 [13;28H[?12l[?25h[?25l[24;65H1[11;28H[?12l[?25h[?25l[24;65H0[10;28H[?12l[?25h[?25l[24;64H39[9;28H[?12l[?25h[?25l[24;65H8[8;28H[?12l[?25h[?25l[24;65H7,0-1[7;1H[?12l[?25h[?25l[24;65H6,15 [6;15H[?12l[?25h[?25l[24;65H5,0-1[5;1H[?12l[?25h[?25l[24;65H4,8 [4;8H[?12l[?25h[?25l[24;65H3,0-1[3;1H[?12l[?25h[?25l[24;65H2,24 [2;24H[?12l[?25h[?25l[24;65H1,25[1;25H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32munsigned[m [32mint[m port_status;[23;1H[94m@ [m[24;63H[K[24;63H130,27[8C92%[1;27H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;2H [32munsigned[m [32mint[m val;[24;63H[K[24;63H129,19[8C92%[1;19H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[32mint[m phyGetResult([32mvoid[m) {[23;1H[94m@ [m[24;63H[K[24;63H128,24[8C92%[1;24H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m */[m[24;63H[K[24;63H127,3[9C91%[1;3H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m * Return -- boolean indicating success[m[24;63H[K[24;63H126,28[8C91%[1;28H[?12l[?25h[?25l[1;23r[1;1H[L[1;24r[1;1H[34m *[m[24;63H[K[24;63H125,2[9C90%[1;2H[?12l[?25h[?25l[24;65H6,28[2;28H[?12l[?25h[?25l[24;65H7,3 [3;3H[?12l[?25h[?25l[24;65H8,24[4;24H[?12l[?25h[?25l[24;65H9,19[5;19H[?12l[?25h[?25l[24;64H30,27[6;27H[?12l[?25h[?25l[24;65H1,25[7;25H[?12l[?25h[?25l[24;65H2,24[8;24H[?12l[?25h[?25l[24;65H3,0-1[9;1H[?12l[?25h[?25l[24;65H4,8 [10;8H[?12l[?25h[?25l[24;65H5,0-1[11;1H[?12l[?25h[?25l[24;65H6,15 [12;15H[?12l[?25h[?25l[24;65H7,0-1[13;1H[?12l[?25h[?25l[24;65H8,28 [14;28H[?12l[?25h[?25l[24;65H9[15;28H[?12l[?25h[?25l[24;64H40[16;28H[?12l[?25h[?25l[24;65H1[17;28H[?12l[?25h[?25l[24;65H2[19;28H[?12l[?25h[?25l[24;65H3,8-15[20;15H[?12l[?25h[?25l[24;65H4,21-28[21;28H[?12l[?25h[?25l[24;67H10-17[21;17H[?12l[?25h[?25l[31m"p[m[24;68H1-18[21;18H[?12l[?25h[?25l[24;67H21-2[21;28H[?12l[?25h[?25l
2554
2555
2556[1m-- INSERT --[m[24;63H[K[24;63H144,22-29 90%[21;29H[?12l[?25h[?25l[31mt:[m[24;68H3-30[21;30H[?12l[?25h[?25l[31m [m[24;68H4-31[21;31H[?12l[?25h[?25l[31m p[m[24;68H5-32[21;32H[?12l[?25h[?25l[31mpo[m[24;68H6-33[21;33H[?12l[?25h[?25l[31mor[m[24;68H7-34[21;34H[?12l[?25h[?25l[31mrt[m[24;68H8-35[21;35H[?12l[?25h[?25l[31m [m[24;68H9-36[21;36H[?12l[?25h[?25l[31m s[m[24;67H30-37[21;37H[?12l[?25h[?25l[31mst[m[24;68H1-38[21;38H[?12l[?25h[?25l[31mta[m[24;68H2-39[21;39H[?12l[?25h[?25l[31mat[m[24;68H3-40[21;40H[?12l[?25h[?25l[31mtu[m[24;68H4-41[21;41H[?12l[?25h[?25l[31mus[m[24;68H5-42[21;42H[?12l[?25h[?25l[31m [m[24;68H6-43[21;43H[?12l[?25h[?25l[31m b[m[24;68H7-44[21;44H[?12l[?25h[?25l[31mba[m[24;68H8-45[21;45H[?12l[?25h[?25l[31mad[m[24;68H9-46[21;46H[?12l[?25h[?25l[31md"[m
2557 good = [1C;
2558 [97m[101m}[m[24;67H40-47[21;47H[?12l[?25h[?25l[31m"[m)[23;5H}[21;15H[106m([31C)[m[24;68H1-48[21;48H[?12l[?25h[?25l[106m)[m;[21;15H([31C)[24;68H2-49[21;49H[?12l[?25h[24;1H[K[21;48H[?25l[24;63H144,41-48 90%[21;48H[?12l[?25h[?25l[24;65H5,15 [22;15H[?12l[?25h[?25l[19;37H[106m{[23;5H}[m[24;65H6,5 [23;5H[?12l[?25h[?25l[1;23r[23;1H
2559[1;24r[18;37H{[22;5H}[24;63H[K[24;63H147,0-1[7C91%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2560[1;24r[23;4H [34m// Read the number of good/bad packets[m[24;63H[K[24;63H148,42[8C91%[23;42H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H readReg(&nf2, PHY_TEST_PHY_0_RX_GOOD_PKT_CNT_REG + i * PHY_TEST_PHY_GROUP_INN[23;1HST_OFFSET, &good_pkts);[24;63H[K[24;63H149,48[8C92%[22;48H[?12l[?25h[?25l[1;23r[1;1H[2M[1;24r[22;4H readReg(&nf2, PHY_TEST_PHY_0_RX_ERR_PKT_CNT_REG + i * PHY_TEST_PHY_GROUP_INSS[23;1HT_OFFSET, &bad_pkts);[24;63H[K[24;63H150,48[8C93%[22;48H[?12l[?25h[?25l[1;23r[23;1H
2561[1;24r[24;63H[K[24;63H151,0-1[7C94%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2562[1;24r[23;4H [34m// Update the good flag[m[24;63H[K[24;63H152,27[8C94%[23;27H[?12l[?25h[?25l[1;23r[23;1H
2563[1;24r[23;4H [38;5;130mif[m (bad_pkts != [31m0[m) {[24;63H[K[24;63H153,24[8C95%[23;24H[?12l[?25h[?25l[24;65H2,27[22;27H[?12l[?25h[?25l[24;65H3,24[23;24H[?12l[?25h[?25l[1;23r[23;1H
2564[1;24r[23;6H good = [31m0[m;[24;63H[K[24;63H154,15[8C96%[23;15H[?12l[?25h[?25l[24;65H3,24[22;24H[?12l[?25h[?25l[23;6H printw([31m"phyGetResult: port status bad"[m);[24;65H4,2-9[8C5[23;9H[?12l[?25h[?25lprintw[106m([31C)[m[24;67H8-15[23;15H[?12l[?25h[?25l([31C)[24;67H10-17[23;17H[?12l[?25h[?25l[24;67H22-29[23;29H[?12l[?25h[?25l[24;68H4-31[23;31H[?12l[?25h[?25l[31m ort status bad"[m);[23;48H[K[23;31H[?12l[?25h[?25l[31m rt status bad"[m);[23;47H[K[23;31H[?12l[?25h[?25l[31m t status bad"[m);[23;46H[K[23;31H[?12l[?25h[?25l[31m status bad"[m);[23;45H[K[23;31H[?12l[?25h[?25l[31m status bad"[m);[23;44H[K[23;31H[?12l[?25h[?25l[31m tatus bad"[m);[23;43H[K[23;31H[?12l[?25h[?25l[31m atus bad"[m);[23;42H[K[23;31H[?12l[?25h[?25l[31m tus bad"[m);[23;41H[K[23;31H[?12l[?25h[?25l[31m us bad"[m);[23;40H[K[23;31H[?12l[?25h[?25l[31m s bad"[m);[23;39H[K[23;31H[?12l[?25h[?25l[31m bad"[m);[23;38H[K[23;31H[?12l[?25h[?25l[31m bad"[m);[23;37H[K[23;31H[?12l[?25h[?25l
2565[1m-- INSERT --[m[24;63H[K[24;63H154,24-31 95%[23;31H[?12l[?25h[?25l[31m fbad"[m);[24;68H5-32[23;32H[?12l[?25h[?25l[31mfobad"[m);[24;68H6-33[23;33H[?12l[?25h[?25l[31moubad"[m);[24;68H7-34[23;34H[?12l[?25h[?25l[31munbad"[m);[24;68H8-35[23;35H[?12l[?25h[?25l[31mndbad"[m);[24;68H9-36[23;36H[?12l[?25h[?25l[31md bad"[m);[24;67H30-37[23;37H[?12l[?25h[24;1H[K[23;36H[?25l[24;63H154,29-36 95%[23;36H[?12l[?25h[?25l[24;67H30-37[23;37H[?12l[?25h[?25l[24;68H1-38[23;38H[?12l[?25h[?25l[24;68H2-39[23;39H[?12l[?25h[?25l[24;68H3-40[23;40H[?12l[?25h[?25l
2566[1m-- INSERT --[m[24;63H[K[24;63H154,33-40 95%[23;40H[?12l[?25h[?25l[31md "[m);[24;68H4-41[23;41H[?12l[?25h[?25l[31m p"[m);[24;68H5-42[23;42H[?12l[?25h[?25l[31mpa"[m);[24;68H6-43[23;43H[?12l[?25h[?25l[31mac"[m);[24;68H7-44[23;44H[?12l[?25h[?25l[31mck"[m);[24;68H8-45[23;45H[?12l[?25h[?25l[31mke"[m);[24;68H9-46[23;46H[?12l[?25h[?25l[31met"[m);[24;67H40-47[23;47H[?12l[?25h[?25l[31mts"[m);[24;68H1-48[23;48H[?12l[?25h[24;1H[K[23;47H[?25l[24;63H154,40-47 95%[23;47H[?12l[?25h[?25l[24;63H[K[24;1H:[?12l[?25hw[?25l[?12l[?25h
2567[?25l"selftest_phy.c" 160L, 4050C written[26C154,40-47 95%[24;63H[K[24;63H154,40-47 95%[23;47H[?12l[?25h[?25l[1;23r[23;1H
2568[1;24r[23;6H good = [31m0[m;[24;1H[K[24;63H155,15[8C96%[23;15H[?12l[?25h[?25l[1;23r[23;1H
2569[1;24r[20;24H[106m{[m[23;4H [106m}[m[24;63H[K[24;63H156,5[9C97%[23;5H[?12l[?25h[?25l[1;23r[23;1H
2570[1;24r[2;35H[106m{[m[19;24H{[22;5H}
2571 [106m}[m[24;63H[K[24;63H157,3[9C97%[23;3H[?12l[?25h[?25l[1;23r[23;1H
2572[1;24r[1;35H{[22;3H}[24;63H[K[24;63H158,0-1[7C98%[23;1H[?12l[?25h[?25l[1;23r[23;1H
2573[1;24r[23;2H [38;5;130mreturn[m good;[24;63H[K[24;63H159,14[8C99%[23;14H[?12l[?25h[?25l[1;23r[23;1H
2574[1;24r[23;1H} [34m// phyGetResult[m[24;63H[K[24;63H160,17[8CBot[23;17H[?12l[?25h[?25l[24;64H59,14[22;14H[?12l[?25h[?25l[24;65H8,0-1[21;1H[?12l[?25h[?25l[24;65H7,3 [20;3H[?12l[?25h[?25l[16;24H[106m{[19;5H}[m[24;65H6,5[19;5H[?12l[?25h[?25l[16;24H{[19;5H}[24;65H5,15[18;15H[?12l[?25h[?25l[24;65H4,40-47[17;47H[?12l[?25h[?25l[16;24H[106m{[19;5H}[m[24;65H3,24 [16;24H[?12l[?25h[?25l{[19;5H}[24;65H2,27[15;27H[?12l[?25h[?25l[16;24H[106m{[19;5H}[m[24;65H3,24[16;24H[?12l[?25h[?25l{[19;5H}[24;65H4,40-47[17;47H[?12l[?25h[?25l[24;65H5,15 [18;15H[?12l[?25h[?25l[16;24H[106m{[19;5H}[m[24;65H6,5 [19;5H[?12l[?25h[?25l[16;24H{[19;5H}[24;65H7,3[20;3H[?12l[?25h[?25l[24;63H[K[24;1H:[?12l[?25hw[?25l[?12l[?25hq[?25l[?12l[?25h
2575[?25l"selftest_phy.c" 160L, 4050C written
2576[?1l>[?12l[?25h[?1049l
2577
2578]0;root@node1-1: ~/netfpga/projects/selftest/swroot@node1-1:~/netfpga/projects/selftest/sw# make
2579/bin/nf_register_gen.pl --project selftest
2580make: /bin/nf_register_gen.pl: Command not found
2581make: *** [registers] Error 127
2582]0;root@node1-1: ~/netfpga/projects/selftest/swroot@node1-1:~/netfpga/projects/selftest/sw# ls -l
2583total 328
2584-rwxr-xr-x 1 netfpga netfpga 26966 2011-03-09 19:22 [0m[01;32mbad_pkt_dump[0m
2585-rw-r--r-- 1 netfpga netfpga 2386 2011-03-09 18:24 bad_pkt_dump.c
2586-rw-r--r-- 1 netfpga netfpga 4296 2011-03-09 19:22 bad_pkt_dump.o
2587-rw-r--r-- 1 netfpga netfpga 903 2011-03-09 18:24 Makefile
2588-rw-r--r-- 1 netfpga netfpga 3212 2011-03-09 18:24 or_data_types.h
2589-rw-r--r-- 1 netfpga netfpga 731 2011-03-09 18:24 or_ip.c
2590-rw-r--r-- 1 netfpga netfpga 129 2011-03-09 18:24 or_ip.h
2591-rw-r--r-- 1 netfpga netfpga 3464 2011-03-09 19:22 or_ip.o
2592-rw-r--r-- 1 netfpga netfpga 872 2011-03-09 18:24 or_utils.c
2593-rw-r--r-- 1 netfpga netfpga 292 2011-03-09 18:24 or_utils.h
2594-rw-r--r-- 1 netfpga netfpga 4108 2011-03-09 19:22 or_utils.o
2595-rwxr-xr-x 1 netfpga netfpga 67122 2011-03-09 19:22 [01;32mselftest[0m
2596-rw-r--r-- 1 netfpga netfpga 10370 2011-03-09 18:24 selftest.c
2597-rw-r--r-- 1 netfpga netfpga 3581 2011-03-09 18:24 selftest_clk.c
2598-rw-r--r-- 1 netfpga netfpga 516 2011-03-09 18:24 selftest_clk.h
2599-rw-r--r-- 1 netfpga netfpga 5740 2011-03-09 19:22 selftest_clk.o
2600-rw-r--r-- 1 netfpga netfpga 6094 2011-03-09 18:24 selftest_dma.c
2601-rw-r--r-- 1 netfpga netfpga 644 2011-03-09 18:24 selftest_dma.h
2602-rw-r--r-- 1 netfpga netfpga 11516 2011-03-09 19:22 selftest_dma.o
2603-rw-r--r-- 1 netfpga netfpga 2660 2011-03-09 18:24 selftest_dram.c
2604-rw-r--r-- 1 netfpga netfpga 554 2011-03-09 18:24 selftest_dram.h
2605-rw-r--r-- 1 netfpga netfpga 4844 2011-03-09 19:22 selftest_dram.o
2606-rw-r--r-- 1 netfpga netfpga 859 2011-03-09 18:24 selftest.h
2607-rw-r--r-- 1 netfpga netfpga 4628 2011-03-09 18:24 selftest_mdio.c
2608-rw-r--r-- 1 netfpga netfpga 526 2011-03-09 18:24 selftest_mdio.h
2609-rw-r--r-- 1 netfpga netfpga 7932 2011-03-09 19:22 selftest_mdio.o
2610-rw-r--r-- 1 netfpga netfpga 17076 2011-03-09 19:22 selftest.o
2611-rw-r--r-- 1 netfpga netfpga 4050 2011-03-10 15:13 selftest_phy.c
2612-rw-r--r-- 1 netfpga netfpga 487 2011-03-09 18:24 selftest_phy.h
2613-rw-r--r-- 1 netfpga netfpga 6612 2011-03-09 19:22 selftest_phy.o
2614-rw-r--r-- 1 netfpga netfpga 1933 2011-03-09 18:24 selftest_reg.c
2615-rw-r--r-- 1 netfpga netfpga 520 2011-03-09 18:24 selftest_reg.h
2616-rw-r--r-- 1 netfpga netfpga 4100 2011-03-09 19:22 selftest_reg.o
2617-rw-r--r-- 1 netfpga netfpga 5986 2011-03-09 18:24 selftest_serial.c
2618-rw-r--r-- 1 netfpga netfpga 512 2011-03-09 18:24 selftest_serial.h
2619-rw-r--r-- 1 netfpga netfpga 6608 2011-03-09 19:22 selftest_serial.o
2620-rw-r--r-- 1 netfpga netfpga 3258 2011-03-09 18:24 selftest_sram.c
2621-rw-r--r-- 1 netfpga netfpga 564 2011-03-09 18:24 selftest_sram.h
2622-rw-r--r-- 1 netfpga netfpga 4976 2011-03-09 19:22 selftest_sram.o
2623[m]0;root@node1-1: ~/netfpga/projects/selftest/swroot@node1-1:~/netfpga/projects/selftest/sw#
2624[K]0;root@node1-1: ~/netfpga/projects/selftest/swroot@node1-1:~/netfpga/projects/selftest/sw# ./bad_pkt_dump
2625Found net device: nf2c0
2626Expected data:
262700000000: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
262800000010: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
262900000020: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
263000000030: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
263100000040: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
263200000050: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
263300000060: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
263400000070: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
263500000080: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
263600000090: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2637000000a0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2638000000b0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2639000000c0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2640000000d0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2641000000e0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2642000000f0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
264300000100: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
264400000110: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
264500000120: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
264600000130: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
264700000140: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
264800000150: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
264900000160: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
265000000170: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
265100000180: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
265200000190: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2653000001a0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2654000001b0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2655000001c0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2656000001d0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2657000001e0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2658000001f0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
265900000200: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
266000000210: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
266100000220: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
266200000230: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
266300000240: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
266400000250: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
266500000260: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
266600000270: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
266700000280: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
266800000290: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2669000002a0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2670000002b0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2671000002c0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2672000002d0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2673000002e0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2674000002f0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
267500000300: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
267600000310: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
267700000320: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
267800000330: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
267900000340: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
268000000350: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
268100000360: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
268200000370: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
268300000380: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
268400000390: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2685000003a0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2686000003b0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2687000003c0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2688000003d0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2689000003e0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2690000003f0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
269100000400: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
269200000410: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
269300000420: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
269400000430: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
269500000440: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
269600000450: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
269700000460: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
269800000470: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
269900000480: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
270000000490: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2701000004a0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2702000004b0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2703000004c0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2704000004d0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2705000004e0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2706000004f0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
270700000500: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
270800000510: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
270900000520: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
271000000530: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
271100000540: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
271200000550: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
271300000560: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
271400000570: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
271500000580: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
271600000590: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2717000005a0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2718000005b0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2719000005c0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2720000005d0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2721000005e0: 00 ca fe 00 00 ca fe 00 00 ca fe 00
2722
2723Received data:
272400000000: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
272500000010: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
272600000020: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
272700000030: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
272800000040: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
272900000050: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
273000000060: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
273100000070: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
273200000080: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
273300000090: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2734000000a0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2735000000b0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2736000000c0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2737000000d0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2738000000e0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2739000000f0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
274000000100: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
274100000110: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
274200000120: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
274300000130: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
274400000140: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
274500000150: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
274600000160: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
274700000170: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
274800000180: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
274900000190: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2750000001a0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2751000001b0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2752000001c0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2753000001d0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2754000001e0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2755000001f0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
275600000200: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
275700000210: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
275800000220: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
275900000230: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
276000000240: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
276100000250: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
276200000260: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
276300000270: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
276400000280: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
276500000290: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2766000002a0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2767000002b0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2768000002c0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2769000002d0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2770000002e0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2771000002f0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
277200000300: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
277300000310: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
277400000320: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
277500000330: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
277600000340: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
277700000350: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
277800000360: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
277900000370: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
278000000380: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
278100000390: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2782000003a0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2783000003b0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2784000003c0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2785000003d0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2786000003e0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2787000003f0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
278800000400: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
278900000410: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
279000000420: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
279100000430: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
279200000440: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
279300000450: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
279400000460: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
279500000470: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
279600000480: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
279700000490: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2798000004a0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2799000004b0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2800000004c0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2801000004d0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2802000004e0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2803000004f0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
280400000500: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
280500000510: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
280600000520: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
280700000530: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
280800000540: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
280900000550: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
281000000560: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
281100000570: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
281200000580: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
281300000590: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2814000005a0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2815000005b0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2816000005c0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2817000005d0: 00 ca fe 00 00 ca fe 00 00 ca fe 00 00 ca fe 00
2818000005e0: 00 ca fe 00 00 ca fe 00 00 ca fe 00
2819
2820]0;root@node1-1: ~/netfpga/projects/selftest/swroot@node1-1:~/netfpga/projects/selftest/sw# ls
2821[0m[01;32mbad_pkt_dump[0m or_ip.c or_utils.o selftest_clk.o selftest_dram.h selftest_mdio.o selftest_reg.c selftest_serial.o
2822bad_pkt_dump.c or_ip.h [01;32mselftest[0m selftest_dma.c selftest_dram.o selftest.o selftest_reg.h selftest_sram.c
2823bad_pkt_dump.o or_ip.o selftest.c selftest_dma.h selftest.h selftest_phy.c selftest_reg.o selftest_sram.h
2824Makefile or_utils.c selftest_clk.c selftest_dma.o selftest_mdio.c selftest_phy.h selftest_serial.c selftest_sram.o
2825or_data_types.h or_utils.h selftest_clk.h selftest_dram.c selftest_mdio.h selftest_phy.o selftest_serial.h
2826[m]0;root@node1-1: ~/netfpga/projects/selftest/swroot@node1-1:~/netfpga/projects/selftest/sw# cd [K[K[Kexit
2827exit
2828]0;netfpga@node1-1: ~netfpga@node1-1:~$ ls
2829[0m[01;34mnetfpga[0m [01;34mpkgs[0m
2830[m]0;netfpga@node1-1: ~netfpga@node1-1:~$ cd netfpga/
2831]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ ls
2832bashrc_addon [0m[01;34mbin[0m [01;34mbitfiles[0m CHANGES [01;34mdoc[0m [01;34mlib[0m LICENSE Makefile [01;34mprojects[0m README
2833[m]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ make[K[K[K[Kcd [K[K[Kmake
2834echo /home/netfpga/netfpga/lib/Perl5:
2835/home/netfpga/netfpga/lib/Perl5:
2836if [ -f "lib/Makefile" ] ; then \
2837 make -C lib ; \
2838 fi
2839make[1]: Entering directory `/home/netfpga/netfpga/lib'
2840make -C C
2841make[2]: Entering directory `/home/netfpga/netfpga/lib/C'
2842make -C kernel
2843make[3]: Entering directory `/home/netfpga/netfpga/lib/C/kernel'
2844make -C /lib/modules/2.6.31-19-generic/build M=/home/netfpga/netfpga/lib/C/kernel LDDINC=/home/netfpga/netfpga/lib/C/kernel/../include modules
2845make[4]: Entering directory `/usr/src/linux-headers-2.6.31-19-generic'
2846 Building modules, stage 2.
2847 MODPOST 1 modules
2848make[4]: Leaving directory `/usr/src/linux-headers-2.6.31-19-generic'
2849make[3]: Leaving directory `/home/netfpga/netfpga/lib/C/kernel'
2850make -C download
2851make[3]: Entering directory `/home/netfpga/netfpga/lib/C/download'
2852make -C ../common
2853make[4]: Entering directory `/home/netfpga/netfpga/lib/C/common'
2854make[4]: Nothing to be done for `all'.
2855make[4]: Leaving directory `/home/netfpga/netfpga/lib/C/common'
2856make[3]: Leaving directory `/home/netfpga/netfpga/lib/C/download'
2857make -C reg_access
2858make[3]: Entering directory `/home/netfpga/netfpga/lib/C/reg_access'
2859make -C ../common
2860make[4]: Entering directory `/home/netfpga/netfpga/lib/C/common'
2861make[4]: Nothing to be done for `all'.
2862make[4]: Leaving directory `/home/netfpga/netfpga/lib/C/common'
2863make[3]: Leaving directory `/home/netfpga/netfpga/lib/C/reg_access'
2864make -C tools
2865make[3]: Entering directory `/home/netfpga/netfpga/lib/C/tools'
2866make -C nf_info
2867make[4]: Entering directory `/home/netfpga/netfpga/lib/C/tools/nf_info'
2868make -C ../../common
2869make[5]: Entering directory `/home/netfpga/netfpga/lib/C/common'
2870make[5]: Nothing to be done for `all'.
2871make[5]: Leaving directory `/home/netfpga/netfpga/lib/C/common'
2872make[4]: Leaving directory `/home/netfpga/netfpga/lib/C/tools/nf_info'
2873make[3]: Leaving directory `/home/netfpga/netfpga/lib/C/tools'
2874make[2]: Leaving directory `/home/netfpga/netfpga/lib/C'
2875make -C scripts
2876make[2]: Entering directory `/home/netfpga/netfpga/lib/scripts'
2877make -C cpci_reprogram
2878make[3]: Entering directory `/home/netfpga/netfpga/lib/scripts/cpci_reprogram'
2879make[3]: Nothing to be done for `all'.
2880make[3]: Leaving directory `/home/netfpga/netfpga/lib/scripts/cpci_reprogram'
2881make -C cpci_config_reg_access
2882make[3]: Entering directory `/home/netfpga/netfpga/lib/scripts/cpci_config_reg_access'
2883make[3]: Nothing to be done for `all'.
2884make[3]: Leaving directory `/home/netfpga/netfpga/lib/scripts/cpci_config_reg_access'
2885make[2]: Leaving directory `/home/netfpga/netfpga/lib/scripts'
2886make[1]: Leaving directory `/home/netfpga/netfpga/lib'
2887echo /home/netfpga/netfpga/lib/Perl5:
2888/home/netfpga/netfpga/lib/Perl5:
2889if [ -f "bitfiles/Makefile" ] ; then \
2890 make -C bitfiles ; \
2891 fi
2892make[1]: Entering directory `/home/netfpga/netfpga/bitfiles'
2893make[1]: Nothing to be done for `all'.
2894make[1]: Leaving directory `/home/netfpga/netfpga/bitfiles'
2895echo /home/netfpga/netfpga/lib/Perl5:
2896/home/netfpga/netfpga/lib/Perl5:
2897if [ -f "projects/Makefile" ] ; then \
2898 make -C projects ; \
2899 fi
2900make[1]: Entering directory `/home/netfpga/netfpga/projects'
2901make -C reference_nic
2902make[2]: Entering directory `/home/netfpga/netfpga/projects/reference_nic'
2903make -C sw
2904make[3]: Entering directory `/home/netfpga/netfpga/projects/reference_nic/sw'
2905/home/netfpga/netfpga/bin/nf_register_gen.pl --project reference_nic
2906
2907NetFPGA environment:
2908 Root dir: /home/netfpga/netfpga
2909 Project name: reference_nic
2910 Project dir: /home/netfpga/netfpga/projects/reference_nic
2911 Work dir: /tmp/netfpga
2912
2913Processing /home/netfpga/netfpga/lib/verilog/core/common/xml/global.xml...
2914Processing /home/netfpga/netfpga/lib/verilog/core/common/xml/nf_defines.xml...
2915Processing /home/netfpga/netfpga/projects/reference_nic/include/project.xml...
2916
2917Project: 'Reference NIC' (reference_nic)
2918Description: Reference NIC
2919Version: 1.1.0
2920Device ID: 1
2921
2922Processing /home/netfpga/netfpga/lib/verilog/core/io_queues/cpu_dma_queue/xml/cpu_dma_queue.xml...
2923Processing /home/netfpga/netfpga/lib/verilog/core/io_queues/ethernet_queue/xml/ethernet_mac.xml...
2924WARNING: No module specific XML found for module 'contrib/ucsd/gig_eth_mac'
2925Processing /home/netfpga/netfpga/lib/verilog/core/input_arbiter/rr_input_arbiter/xml/rr_input_arbiter.xml...
2926WARNING: No module specific XML found for module 'core/nf2/generic_top'
2927WARNING: No module specific XML found for module 'core/nf2/reference_core'
2928WARNING: No module specific XML found for module 'core/output_port_lookup/nic'
2929Processing /home/netfpga/netfpga/lib/verilog/core/output_queues/sram_rr_output_queues/xml/sram_rr_output_queues.xml...
2930WARNING: No module specific XML found for module 'core/sram_arbiter/sram_weighted_rr'
2931WARNING: No module specific XML found for module 'core/user_data_path/reference_user_data_path'
2932Processing /home/netfpga/netfpga/lib/verilog/core/io/mdio/xml/mdio.xml...
2933WARNING: No module specific XML found for module 'core/cpci_bus'
2934Processing /home/netfpga/netfpga/lib/verilog/core/dma/xml/dma.xml...
2935WARNING: No module specific XML found for module 'core/user_data_path/udp_reg_master'
2936WARNING: No module specific XML found for module 'core/io_queues/add_rm_hdr'
2937Processing /home/netfpga/netfpga/lib/verilog/core/strip_headers/keep_length/xml/strip_headers.xml...
2938Processing /home/netfpga/netfpga/lib/verilog/core/utils/xml/device_id_reg.xml...
2939WARNING: No module specific XML found for module 'core/utils/generic_regs'
2940make[3]: Leaving directory `/home/netfpga/netfpga/projects/reference_nic/sw'
2941make[2]: Leaving directory `/home/netfpga/netfpga/projects/reference_nic'
2942make -C reference_router
2943make[2]: Entering directory `/home/netfpga/netfpga/projects/reference_router'
2944make -C sw
2945make[3]: Entering directory `/home/netfpga/netfpga/projects/reference_router/sw'
2946/home/netfpga/netfpga/bin/nf_register_gen.pl --project reference_router
2947
2948NetFPGA environment:
2949 Root dir: /home/netfpga/netfpga
2950 Project name: reference_router
2951 Project dir: /home/netfpga/netfpga/projects/reference_router
2952 Work dir: /tmp/netfpga
2953
2954Processing /home/netfpga/netfpga/lib/verilog/core/common/xml/global.xml...
2955Processing /home/netfpga/netfpga/lib/verilog/core/common/xml/nf_defines.xml...
2956Processing /home/netfpga/netfpga/projects/reference_router/include/project.xml...
2957
2958Project: 'Reference router' (reference_router)
2959Description: Reference IPv4 router
2960Version: 1.0.0
2961Device ID: 2
2962
2963Processing /home/netfpga/netfpga/lib/verilog/core/io_queues/cpu_dma_queue/xml/cpu_dma_queue.xml...
2964Processing /home/netfpga/netfpga/lib/verilog/core/io_queues/ethernet_queue/xml/ethernet_mac.xml...
2965WARNING: No module specific XML found for module 'contrib/ucsd/gig_eth_mac'
2966Processing /home/netfpga/netfpga/lib/verilog/core/input_arbiter/rr_input_arbiter/xml/rr_input_arbiter.xml...
2967WARNING: No module specific XML found for module 'core/nf2/generic_top'
2968WARNING: No module specific XML found for module 'core/nf2/reference_core'
2969Processing /home/netfpga/netfpga/lib/verilog/core/output_port_lookup/cam_router/xml/cam_router.xml...
2970Processing /home/netfpga/netfpga/lib/verilog/core/output_queues/sram_rr_output_queues/xml/sram_rr_output_queues.xml...
2971WARNING: No module specific XML found for module 'core/sram_arbiter/sram_weighted_rr'
2972WARNING: No module specific XML found for module 'core/user_data_path/reference_user_data_path'
2973Processing /home/netfpga/netfpga/lib/verilog/core/io/mdio/xml/mdio.xml...
2974WARNING: No module specific XML found for module 'core/cpci_bus'
2975Processing /home/netfpga/netfpga/lib/verilog/core/dma/xml/dma.xml...
2976WARNING: No module specific XML found for module 'core/user_data_path/udp_reg_master'
2977WARNING: No module specific XML found for module 'core/io_queues/add_rm_hdr'
2978Processing /home/netfpga/netfpga/lib/verilog/core/strip_headers/keep_length/xml/strip_headers.xml...
2979Processing /home/netfpga/netfpga/lib/verilog/core/utils/xml/device_id_reg.xml...
2980WARNING: No module specific XML found for module 'core/utils/generic_regs'
2981make[3]: Leaving directory `/home/netfpga/netfpga/projects/reference_router/sw'
2982make[2]: Leaving directory `/home/netfpga/netfpga/projects/reference_router'
2983make -C reference_switch
2984make[2]: Entering directory `/home/netfpga/netfpga/projects/reference_switch'
2985make -C sw
2986make[3]: Entering directory `/home/netfpga/netfpga/projects/reference_switch/sw'
2987/home/netfpga/netfpga/bin/nf_register_gen.pl --project reference_switch
2988
2989NetFPGA environment:
2990 Root dir: /home/netfpga/netfpga
2991 Project name: reference_switch
2992 Project dir: /home/netfpga/netfpga/projects/reference_switch
2993 Work dir: /tmp/netfpga
2994
2995Processing /home/netfpga/netfpga/lib/verilog/core/common/xml/global.xml...
2996Processing /home/netfpga/netfpga/lib/verilog/core/common/xml/nf_defines.xml...
2997Processing /home/netfpga/netfpga/projects/reference_switch/include/project.xml...
2998
2999Project: 'Reference Switch' (reference_switch)
3000Description: Reference Switch
3001Version: 1.0.0
3002Device ID: 3
3003
3004Processing /home/netfpga/netfpga/lib/verilog/core/io_queues/cpu_dma_queue/xml/cpu_dma_queue.xml...
3005Processing /home/netfpga/netfpga/lib/verilog/core/io_queues/ethernet_queue/xml/ethernet_mac.xml...
3006WARNING: No module specific XML found for module 'contrib/ucsd/gig_eth_mac'
3007Processing /home/netfpga/netfpga/lib/verilog/core/input_arbiter/rr_input_arbiter/xml/rr_input_arbiter.xml...
3008WARNING: No module specific XML found for module 'core/nf2/generic_top'
3009WARNING: No module specific XML found for module 'core/nf2/reference_core'
3010Processing /home/netfpga/netfpga/lib/verilog/core/output_port_lookup/learning_cam_switch/xml/learning_cam_switch.xml...
3011Processing /home/netfpga/netfpga/lib/verilog/core/output_queues/sram_rr_output_queues/xml/sram_rr_output_queues.xml...
3012WARNING: No module specific XML found for module 'core/sram_arbiter/sram_weighted_rr'
3013WARNING: No module specific XML found for module 'core/user_data_path/reference_user_data_path'
3014WARNING: No module specific XML found for module 'core/user_data_path/udp_reg_master'
3015Processing /home/netfpga/netfpga/lib/verilog/core/io/mdio/xml/mdio.xml...
3016WARNING: No module specific XML found for module 'core/cpci_bus'
3017Processing /home/netfpga/netfpga/lib/verilog/core/dma/xml/dma.xml...
3018WARNING: No module specific XML found for module 'core/io_queues/add_rm_hdr'
3019Processing /home/netfpga/netfpga/lib/verilog/core/strip_headers/keep_length/xml/strip_headers.xml...
3020Processing /home/netfpga/netfpga/lib/verilog/core/utils/xml/device_id_reg.xml...
3021make[3]: Leaving directory `/home/netfpga/netfpga/projects/reference_switch/sw'
3022make[2]: Leaving directory `/home/netfpga/netfpga/projects/reference_switch'
3023make -C router_buffer_sizing
3024make[2]: Entering directory `/home/netfpga/netfpga/projects/router_buffer_sizing'
3025make -C sw
3026make[3]: Entering directory `/home/netfpga/netfpga/projects/router_buffer_sizing/sw'
3027make[3]: Nothing to be done for `all'.
3028make[3]: Leaving directory `/home/netfpga/netfpga/projects/router_buffer_sizing/sw'
3029make[2]: Leaving directory `/home/netfpga/netfpga/projects/router_buffer_sizing'
3030make -C router_kit
3031make[2]: Entering directory `/home/netfpga/netfpga/projects/router_kit'
3032make -C sw
3033make[3]: Entering directory `/home/netfpga/netfpga/projects/router_kit/sw'
3034/home/netfpga/netfpga/bin/nf_register_gen.pl --project reference_router
3035
3036NetFPGA environment:
3037 Root dir: /home/netfpga/netfpga
3038 Project name: reference_router
3039 Project dir: /home/netfpga/netfpga/projects/reference_router
3040 Work dir: /tmp/netfpga
3041
3042Processing /home/netfpga/netfpga/lib/verilog/core/common/xml/global.xml...
3043Processing /home/netfpga/netfpga/lib/verilog/core/common/xml/nf_defines.xml...
3044Processing /home/netfpga/netfpga/projects/reference_router/include/project.xml...
3045
3046Project: 'Reference router' (reference_router)
3047Description: Reference IPv4 router
3048Version: 1.0.0
3049Device ID: 2
3050
3051Processing /home/netfpga/netfpga/lib/verilog/core/io_queues/cpu_dma_queue/xml/cpu_dma_queue.xml...
3052Processing /home/netfpga/netfpga/lib/verilog/core/io_queues/ethernet_queue/xml/ethernet_mac.xml...
3053WARNING: No module specific XML found for module 'contrib/ucsd/gig_eth_mac'
3054Processing /home/netfpga/netfpga/lib/verilog/core/input_arbiter/rr_input_arbiter/xml/rr_input_arbiter.xml...
3055WARNING: No module specific XML found for module 'core/nf2/generic_top'
3056WARNING: No module specific XML found for module 'core/nf2/reference_core'
3057Processing /home/netfpga/netfpga/lib/verilog/core/output_port_lookup/cam_router/xml/cam_router.xml...
3058Processing /home/netfpga/netfpga/lib/verilog/core/output_queues/sram_rr_output_queues/xml/sram_rr_output_queues.xml...
3059WARNING: No module specific XML found for module 'core/sram_arbiter/sram_weighted_rr'
3060WARNING: No module specific XML found for module 'core/user_data_path/reference_user_data_path'
3061Processing /home/netfpga/netfpga/lib/verilog/core/io/mdio/xml/mdio.xml...
3062WARNING: No module specific XML found for module 'core/cpci_bus'
3063Processing /home/netfpga/netfpga/lib/verilog/core/dma/xml/dma.xml...
3064WARNING: No module specific XML found for module 'core/user_data_path/udp_reg_master'
3065WARNING: No module specific XML found for module 'core/io_queues/add_rm_hdr'
3066Processing /home/netfpga/netfpga/lib/verilog/core/strip_headers/keep_length/xml/strip_headers.xml...
3067Processing /home/netfpga/netfpga/lib/verilog/core/utils/xml/device_id_reg.xml...
3068WARNING: No module specific XML found for module 'core/utils/generic_regs'
3069ln -f -s ../../reference_router/lib/C/reg_defines_reference_router.h reg_defines.h
3070make[3]: Leaving directory `/home/netfpga/netfpga/projects/router_kit/sw'
3071make[2]: Leaving directory `/home/netfpga/netfpga/projects/router_kit'
3072make -C scone
3073make[2]: Entering directory `/home/netfpga/netfpga/projects/scone'
3074make -C sw
3075make[3]: Entering directory `/home/netfpga/netfpga/projects/scone/sw'
3076/home/netfpga/netfpga/bin/nf_register_gen.pl --project reference_router
3077
3078NetFPGA environment:
3079 Root dir: /home/netfpga/netfpga
3080 Project name: reference_router
3081 Project dir: /home/netfpga/netfpga/projects/reference_router
3082 Work dir: /tmp/netfpga
3083
3084Processing /home/netfpga/netfpga/lib/verilog/core/common/xml/global.xml...
3085Processing /home/netfpga/netfpga/lib/verilog/core/common/xml/nf_defines.xml...
3086Processing /home/netfpga/netfpga/projects/reference_router/include/project.xml...
3087
3088Project: 'Reference router' (reference_router)
3089Description: Reference IPv4 router
3090Version: 1.0.0
3091Device ID: 2
3092
3093Processing /home/netfpga/netfpga/lib/verilog/core/io_queues/cpu_dma_queue/xml/cpu_dma_queue.xml...
3094Processing /home/netfpga/netfpga/lib/verilog/core/io_queues/ethernet_queue/xml/ethernet_mac.xml...
3095WARNING: No module specific XML found for module 'contrib/ucsd/gig_eth_mac'
3096Processing /home/netfpga/netfpga/lib/verilog/core/input_arbiter/rr_input_arbiter/xml/rr_input_arbiter.xml...
3097WARNING: No module specific XML found for module 'core/nf2/generic_top'
3098WARNING: No module specific XML found for module 'core/nf2/reference_core'
3099Processing /home/netfpga/netfpga/lib/verilog/core/output_port_lookup/cam_router/xml/cam_router.xml...
3100Processing /home/netfpga/netfpga/lib/verilog/core/output_queues/sram_rr_output_queues/xml/sram_rr_output_queues.xml...
3101WARNING: No module specific XML found for module 'core/sram_arbiter/sram_weighted_rr'
3102WARNING: No module specific XML found for module 'core/user_data_path/reference_user_data_path'
3103Processing /home/netfpga/netfpga/lib/verilog/core/io/mdio/xml/mdio.xml...
3104WARNING: No module specific XML found for module 'core/cpci_bus'
3105Processing /home/netfpga/netfpga/lib/verilog/core/dma/xml/dma.xml...
3106WARNING: No module specific XML found for module 'core/user_data_path/udp_reg_master'
3107WARNING: No module specific XML found for module 'core/io_queues/add_rm_hdr'
3108Processing /home/netfpga/netfpga/lib/verilog/core/strip_headers/keep_length/xml/strip_headers.xml...
3109Processing /home/netfpga/netfpga/lib/verilog/core/utils/xml/device_id_reg.xml...
3110WARNING: No module specific XML found for module 'core/utils/generic_regs'
3111ln -f -s /home/netfpga/netfpga/projects/reference_router/lib/C/reg_defines_reference_router.h reg_defines.h
3112make[3]: Leaving directory `/home/netfpga/netfpga/projects/scone/sw'
3113make[2]: Leaving directory `/home/netfpga/netfpga/projects/scone'
3114make -C selftest
3115make[2]: Entering directory `/home/netfpga/netfpga/projects/selftest'
3116make -C sw
3117make[3]: Entering directory `/home/netfpga/netfpga/projects/selftest/sw'
3118/home/netfpga/netfpga/bin/nf_register_gen.pl --project selftest
3119
3120NetFPGA environment:
3121 Root dir: /home/netfpga/netfpga
3122 Project name: selftest
3123 Project dir: /home/netfpga/netfpga/projects/selftest
3124 Work dir: /tmp/netfpga
3125
3126Processing /home/netfpga/netfpga/lib/verilog/core/common/xml/global.xml...
3127Processing /home/netfpga/netfpga/lib/verilog/core/common/xml/nf_defines.xml...
3128Processing /home/netfpga/netfpga/projects/selftest/include/project.xml...
3129
3130Project: 'Selftest' (selftest)
3131Description: NetFPGA selftest -- exercises all major subsystems of the board
3132Version: 1.1.0
3133Device ID: 5
3134
3135WARNING: No module specific XML found for module 'core/nf2/reference_core'
3136Processing /home/netfpga/netfpga/lib/verilog/core/io/mdio/xml/mdio.xml...
3137WARNING: No module specific XML found for module 'core/cpci_bus'
3138Processing /home/netfpga/netfpga/lib/verilog/core/dma/xml/dma.xml...
3139WARNING: No module specific XML found for module 'core/ddr2_controller'
3140Processing /home/netfpga/netfpga/lib/verilog/core/utils/xml/device_id_reg.xml...
3141Processing /home/netfpga/netfpga/projects/selftest/include/clock_test.xml...
3142Processing /home/netfpga/netfpga/projects/selftest/include/dram_test.xml...
3143Processing /home/netfpga/netfpga/projects/selftest/include/phy_test.xml...
3144Processing /home/netfpga/netfpga/projects/selftest/include/reg_file.xml...
3145Processing /home/netfpga/netfpga/projects/selftest/include/reg_reflect.xml...
3146Processing /home/netfpga/netfpga/projects/selftest/include/serial_test.xml...
3147Processing /home/netfpga/netfpga/projects/selftest/include/sram_msb.xml...
3148Processing /home/netfpga/netfpga/projects/selftest/include/sram_test.xml...
3149/home/netfpga/netfpga/bin/nf_register_gen.pl --project cpci
3150
3151NetFPGA environment:
3152 Root dir: /home/netfpga/netfpga
3153 Project name: cpci
3154 Project dir: /home/netfpga/netfpga/projects/cpci
3155 Work dir: /tmp/netfpga
3156
3157Processing /home/netfpga/netfpga/lib/verilog/core/common/xml/global.xml...
3158Processing /home/netfpga/netfpga/lib/verilog/core/common/xml/nf_defines.xml...
3159Processing /home/netfpga/netfpga/projects/cpci/include/project.xml...
3160
3161Project: 'CPCI' (cpci)
3162Description: NetFPGA PCI interface
3163Version: 4.1.0
3164Device ID: 0
3165
3166Processing /home/netfpga/netfpga/projects/cpci/include/cpci_regs.xml...
3167gcc -g -c -o selftest_phy.o selftest_phy.c
3168gcc -lncurses selftest.o selftest_dram.o selftest_sram.o selftest_serial.o selftest_phy.o selftest_mdio.o selftest_reg.o selftest_clk.o selftest_dma.o or_ip.o or_utils.o /home/netfpga/netfpga/lib/C/common/nf2util.o /home/netfpga/netfpga/lib/C/common/nf2util_proxy_common.o -o selftest
3169make[3]: Leaving directory `/home/netfpga/netfpga/projects/selftest/sw'
3170make[2]: Leaving directory `/home/netfpga/netfpga/projects/selftest'
3171make[1]: Leaving directory `/home/netfpga/netfpga/projects'
3172]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ sudo bash
3173]0;root@node1-1: ~/netfpgaroot@node1-1:~/netfpga# exit[2Pls./bad_pkt_dump [10Pls -l[1Pmakevi selftest_phy.c [5P./selftest -nvi selftest_phy.c .c[Kgrep PHY * | morels[Kvi selftest_phy.c ls[Kcd netfpga/projects/selftest/sw/
3174[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[Cls[Kess netfpga/projects/selftest/sw/selftest
3175[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[1Pnetfpga/projects/selftest/sw/selftest -n
3176[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[Cless netfpga/projects/selftest/sw/selftest
3177[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[1Pnetfpga/projects/selftest/sw/selftest -n [K[K[K[K[K[K[K[K[K[K[K[K[C[C[C[C[C[C[C[C[1Pprojects/selftest/sw/[1Pprojects/selftest/sw/[1Pprojects/selftest/sw/[1Projects/selftest/sw/[1Pprojects/selftest/sw/[1Pprojects/selftest/sw/[1Pprojects/selftest/sw/[1Pprojects/selftest/sw/cprojects/selftest/sw/dprojects/selftest/sw/ projects/selftest/sw/
3178]0;root@node1-1: ~/netfpga/projects/selftest/swroot@node1-1:~/netfpga/projects/selftest/sw# ./selftest -n
3179Found net device: nf2c0
3180CPCI Information
3181----------------
3182Version: 4 (rev 1)
3183
3184Device (Virtex) Information
3185---------------------------
3186Project directory: selftest
3187Project name: Selftest
3188Project description: NetFPGA selftest -- exercises all major subsystems of the board
3189
3190Device ID: 5
3191Version: 1.1.0
3192Built against CPCI version: 4 (rev 1)
3193
3194NetFPGA selftest 1.00 alpha
3195Running.....Segmentation fault
3196]0;root@node1-1: ~/netfpga/projects/selftest/swroot@node1-1:~/netfpga/projects/selftest/sw# exit
3197exit
3198]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ sudo bash[Kcd -[Kprij[K[Kp[Kojects/selftest/
3199include/ lib/ src/ sw/ synth/ verif/
3200]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ cd projects/selftest/src/[K[K[K[Ksr[K[Ksw/
3201]0;netfpga@node1-1: ~/netfpga/projects/selftest/swnetfpga@node1-1:~/netfpga/projects/selftest/sw$ ls
3202[0m[01;32mbad_pkt_dump[0m or_ip.c or_utils.o selftest_clk.o selftest_dram.h selftest_mdio.o selftest_reg.c selftest_serial.o
3203bad_pkt_dump.c or_ip.h [01;32mselftest[0m selftest_dma.c selftest_dram.o selftest.o selftest_reg.h selftest_sram.c
3204bad_pkt_dump.o or_ip.o selftest.c selftest_dma.h selftest.h selftest_phy.c selftest_reg.o selftest_sram.h
3205Makefile or_utils.c selftest_clk.c selftest_dma.o selftest_mdio.c selftest_phy.h selftest_serial.c selftest_sram.o
3206or_data_types.h or_utils.h selftest_clk.h selftest_dram.c selftest_mdio.h selftest_phy.o selftest_serial.h
3207[m]0;netfpga@node1-1: ~/netfpga/projects/selftest/swnetfpga@node1-1:~/netfpga/projects/selftest/sw$ vi selftest.[K-[K_phy.c
3208[?1049h[?1h=[1;44r[?12;25h[?12l[?25h[27m[m[H[2J[?25l[44;1H"selftest_phy.c" 160L, 4050C[>c[1;1H[34m/* ****************************************************************************
3209 * vim:set shiftwidth=2 softtabstop=2 expandtab:
3210 * $Id: selftest_phy.c 5971 2010-03-06 06:44:56Z grg $
3211 *
3212 * Module: selftest_phy.c
3213 * Project: NetFPGA selftest
3214 * Description: SATA selftest module
3215 *
3216 * Change history:
3217 *
3218 */[m
3219
3220[35m#include [m[31m"../lib/C/reg_defines_selftest.h"[m
3221[35m#include [m[31m"selftest.h"[m
3222[35m#include [m[31m"selftest_phy.h"[m
3223[35m#include [m[31m<curses.h>[m
3224[35m#include [m[31m<time.h>[m
3225
3226[35m#define NUM_PORTS [m[31m4[m
3227
3228[32mstatic[m [32mint[m prev_good_pkts[NUM_PORTS];
3229[32mstatic[m [32mint[m prev_bad_pkts[NUM_PORTS];
3230
3231[34m/*
3232 * Reset the interface and configure it for continuous operation
3233 */[m
3234[32mvoid[m phyResetContinuous([32mvoid[m) {
3235 [32mint[m i;
3236
3237 [33mfor[m (i = [31m0[m; i < NUM_PORTS; i++) {
3238 prev_good_pkts[i] = [31m0[m;
3239 prev_bad_pkts[i] = [31m0[m;
3240 }
3241
3242 [34m// Stop the test (and wait for the test to stop)[m
3243 writeReg(&nf2, PHY_TEST_CTRL_REG, [31m0x0[m);
3244 sleep([31m1[m);
3245
3246 writeReg(&nf2, PHY_TEST_PATTERN_REG, PHY_TEST_PATTERN_ENABLE_MASK);
3247
3248 [34m// Start the test[m
3249 writeReg(&nf2, PHY_TEST_CTRL_REG, PHY_TEST_CTRL_REPEAT);
3250} [34m// phyResetContinuous[m[44;142H1,1[11CTop[1;1H[?12l[?25hP+q436f\P+q6b75\P+q6b64\P+q6b72\P+q6b6c\P+q2332\P+q2334\P+q2569\P+q2a37\P+q6b31\P+q6b32\[27m[m[H[2J[?25l[1;1H[34m/* ****************************************************************************
3251 * vim:set shiftwidth=2 softtabstop=2 expandtab:
3252 * $Id: selftest_phy.c 5971 2010-03-06 06:44:56Z grg $
3253 *
3254 * Module: selftest_phy.c
3255 * Project: NetFPGA selftest
3256 * Description: SATA selftest module
3257 *
3258 * Change history:
3259 *
3260 */[m
3261
3262[35m#include [m[31m"../lib/C/reg_defines_selftest.h"[m
3263[35m#include [m[31m"selftest.h"[m
3264[35m#include [m[31m"selftest_phy.h"[m
3265[35m#include [m[31m<curses.h>[m
3266[35m#include [m[31m<time.h>[m
3267
3268[35m#define NUM_PORTS [m[31m4[m
3269
3270[32mstatic[m [32mint[m prev_good_pkts[NUM_PORTS];
3271[32mstatic[m [32mint[m prev_bad_pkts[NUM_PORTS];
3272
3273[34m/*
3274 * Reset the interface and configure it for continuous operation
3275 */[m
3276[32mvoid[m phyResetContinuous([32mvoid[m) {
3277 [32mint[m i;
3278
3279 [38;5;130mfor[m (i = [31m0[m; i < NUM_PORTS; i++) {
3280 prev_good_pkts[i] = [31m0[m;
3281 prev_bad_pkts[i] = [31m0[m;
3282 }
3283
3284 [34m// Stop the test (and wait for the test to stop)[m
3285 writeReg(&nf2, PHY_TEST_CTRL_REG, [31m0x0[m);
3286 sleep([31m1[m);
3287
3288 writeReg(&nf2, PHY_TEST_PATTERN_REG, PHY_TEST_PATTERN_ENABLE_MASK);
3289
3290 [34m// Start the test[m
3291 writeReg(&nf2, PHY_TEST_CTRL_REG, PHY_TEST_CTRL_REPEAT);
3292} [34m// phyResetContinuous[m[44;142H1,1[11CTop
3293"selftest_phy.c" 160L, 4050C[44;142H[K[44;142H1,1[11CTop[1;1H[?12l[?25hP+q6b33\[?25l[?12l[?25hP+q6b34\P+q6b35\P+q6b36\P+q6b37\P+q6b38\P+q6b39\P+q6b3b\P+q4631\P+q4632\P+q2531\P+q2638\P+q6b62\P+q6b49\P+q6b44\P+q6b68\P+q4037\P+q6b50\P+q6b4e\P+q4b31\P+q4b33\P+q4b34\P+q4b35\P+q6b42\[?25l[44;1H[K[44;1H/[?12l[?25hK[?25l[?12l[?25hi[?25l[?12l[?25hr[?25l[?12l[?25ha[?25l[?12l[?25hn[?25l[?12l[?25h
3294[?25l[27m[m[H[2J[1;1H[32mvoid[m phyStopContinuous([32mvoid[m) {
3295 [34m// Stop the test (and wait for the test to stop)[m
3296 writeReg(&nf2, PHY_TEST_CTRL_REG, [31m0x00000000[m);
3297} [34m// phyStopContinuous
3298
3299/*
3300 * Get the result of the test
3301 *
3302 * Return -- boolean indicating success
3303 */[m
3304[32mint[m phyGetResult([32mvoid[m) {
3305 [32munsigned[m [32mint[m val;
3306 [32munsigned[m [32mint[m port_status;
3307 [32munsigned[m [32mint[m good_pkts;
3308 [32munsigned[m [32mint[m bad_pkts;
3309
3310 [32mint[m i;
3311
3312 [32mint[m good = [31m1[m;
3313
3314 [34m// Read the individual port registers[m
3315 [38;5;130mfor[m (i = [31m0[m; i < NUM_PORTS; i++) {
3316 [34m// Start with the status register[m
3317 readReg(&nf2, PHY_TEST_PHY_0_RX_STATUS_REG + i * PHY_TEST_PHY_GROUP_INST_OFFSET, &port_status);
3318 [38;5;130mif[m ((port_status & [31m0x100[m) == [31m0[m) {[26;8H [34m//Kiran[m[27;8H printw([31m"phyGetResult: port status bad"[m);[28;6H good = [31m0[m;
3319 }[31;4H [34m// Read the number of good/bad packets[m
3320 readReg(&nf2, PHY_TEST_PHY_0_RX_GOOD_PKT_CNT_REG + i * PHY_TEST_PHY_GROUP_INST_OFFSET, &good_pkts);
3321 readReg(&nf2, PHY_TEST_PHY_0_RX_ERR_PKT_CNT_REG + i * PHY_TEST_PHY_GROUP_INST_OFFSET, &bad_pkts);[35;4H [34m// Update the good flag[m
3322 [38;5;130mif[m (bad_pkts != [31m0[m) {[37;8H printw([31m"phyGetResult: found bad packets"[m);[38;6H good = [31m0[m;
3323 }
3324 }
3325
3326 [38;5;130mreturn[m good;
3327} [34m// phyGetResult[m[44;142H143,4-11 Bot[26;11H[?12l[?25h[?25l[44;144H2,11 [25;11H[?12l[?25h[?25l[44;144H1[24;11H[?12l[?25h[?25l[44;144H0[23;11H[?12l[?25h[?25l[44;143H39[22;11H[?12l[?25h[?25l[44;144H8[21;11H[?12l[?25h[?25l[44;144H7,0-1[20;1H[?12l[?25h[?25l[44;144H6,11 [19;11H[?12l[?25h[?25l[44;144H5,0-1[18;1H[?12l[?25h[?25l[44;144H4,8 [17;8H[?12l[?25h[?25l[44;144H3,0-1[16;1H[?12l[?25h[?25l[44;144H2,11 [15;11H[?12l[?25h[?25l[44;144H1[14;11H[?12l[?25h[?25l[44;144H0[13;11H[?12l[?25h[?25l[44;143H29[12;11H[?12l[?25h[?25l[44;144H8[11;11H[?12l[?25h[?25l[44;144H7,3 [10;3H[?12l[?25h[?25l[44;144H6,11[9;11H[?12l[?25h[?25l[44;144H5,2 [8;2H[?12l[?25h[?25l[44;144H4,11[7;11H[?12l[?25h[?25l[44;144H3,2 [6;2H[?12l[?25h[?25l[44;144H2,0-1[5;1H[?12l[?25h[?25l[44;144H1,11 [4;11H[?12l[?25h[?25l[3;11H[106m([35C)[m[44;144H0[3;11H[?12l[?25h[?25l([35C)[44;143H19[2;11H[?12l[?25h[?25l[44;144H8[1;11H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;1H[34m */[m[44;142H[K[44;142H117,3[9C99%[1;3H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;1H[34m * Stop the interface[m[44;142H[K[44;142H116,11[8C98%[1;11H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;1H[34m/*[m[44;142H[K[44;142H115,2[9C97%[1;2H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[44;142H[K[44;142H114,0-1[7C96%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;1H} [34m// phyShowStatusContinuous[m[44;142H[K[44;142H113,11[8C95%[1;11H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;2H [38;5;130mreturn[m good;[44;142H[K[44;142H112,11[8C94%[1;11H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[44;142H[K[44;142H111,0-1[7C94%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;2H move(y + [31m1[m + NUM_PORTS, x);[44;142H[K[44;142H110,11[8C93%[1;11H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;2H printw([31m"PHY test: [m[35m%s[m[31m"[m, good ? [31m"pass"[m : [31m"fail"[m);[44;142H[K[44;142H109,11[8C92%[1;11H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;2H move(y, x);[44;142H[K[44;142H108,11[8C91%[1;11H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;2H [34m// Print overall success/failure[m[44;142H[K[44;142H107,11[8C90%[1;11H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[44;142H[K[44;142H106,0-1[7C89%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;2H }[44;142H[K[44;142H105,3[9C88%[1;3H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;6H good = [31m0[m;[44;142H[K[44;142H104,11[8C88%[1;11H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;4H [38;5;130mif[m (bad_pkts != [31m0[m)[44;142H[K[44;142H103,11[8C87%[1;11H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;4H [34m// Update the good flag[m[44;142H[K[44;142H102,11[8C86%[1;11H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[44;142H[K[44;142H101,0-1[7C85%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;1H[34m }*/[m[44;142H[K[44;142H100,7[9C84%[1;7H[?12l[?25h[?25l[44;144H1,0-1[2;1H[?12l[?25h[?25l[44;144H2,11 [3;11H[?12l[?25h[?25l[44;144H3[4;11H[?12l[?25h[?25l[44;144H4[5;11H[?12l[?25h[?25l[44;144H5,3 [6;3H[?12l[?25h[?25l[44;144H6,0-1[7;1H[?12l[?25h[?25l[44;144H7,11 [8;11H[?12l[?25h[?25l[44;144H8[9;11H[?12l[?25h[?25l[44;144H9[10;11H[?12l[?25h[?25l[44;143H10[11;11H[?12l[?25h[?25l[44;144H1,0-1[12;1H[?12l[?25h[?25l[44;144H0,11 [11;11H[?12l[?25h[?25l[44;143H09[10;11H[?12l[?25h[?25l[44;144H8[9;11H[?12l[?25h[?25l[44;144H7[8;11H[?12l[?25h[?25l[44;144H6,0-1[7;1H[?12l[?25h[?25l[44;144H5,3 [6;3H[?12l[?25h[?25l[44;144H4,11[5;11H[?12l[?25h[?25l[44;144H3[4;11H[?12l[?25h[?25l[44;144H2[3;11H[?12l[?25h[?25l[44;144H1,0-1[2;1H[?12l[?25h[?25l[44;144H0,7 [1;7H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;1H[34m prev_good_pkts[i] = good_pkts;[m[44;142H[K[44;142H99,11[9C83%[1;11H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;1H[34m prev_bad_pkts[i] = bad_pkts;[m[44;142H[K[44;142H98,11[9C82%[1;11H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;1H[34m // Update the counters[m[44;142H[K[44;142H97,11[9C82%[1;11H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[44;142H[K[44;142H96,0-1[8C81%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;1H[34m }[m[44;142H[K[44;142H95,7[10C80%[1;7H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;1H[34m writeReg(&nf2, PHY_TEST_PHY_0_RX_CTRL_REG + i * PHY_TEST_PHY_GROUP_INST_OFFSET, 0x3);[m[44;142H[K[44;142H94,11[9C79%[1;11H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;1H[34m if (bad_pkts == prev_bad_pkts[i] && good_pkts != prev_good_pkts[i]) {[m[44;142H[K[44;142H93,11[9C78%[1;11H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;1H[34m // packets have remained the same[m[44;142H[K[44;142H92,11[9C77%[1;11H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;1H[34m // Only reset if the number of good packets has incremented but the bad[m[44;142H[K[44;142H91,11[9C76%[1;11H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;4H [34m/*if ([m[34m[106m([m[34mport_status & 0x1100[m[34m[106m)[m[34m == 0x1100) {[m[44;142H[K[44;142H90,11[9C76%[1;11H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;4H [34m// Verify if we should reset the counters[2;11H([20C)[m[44;142H[K[44;142H89,11[9C75%[1;11H[?12l[?25h[?25l[2;11H[34m[106m([20C)[m[44;142H90[2;11H[?12l[?25h[?25l[34m([20C)[m[44;143H1[3;11H[?12l[?25h[?25l[44;143H2[4;11H[?12l[?25h[?25l[44;143H3[5;11H[?12l[?25h[?25l[44;143H4[6;11H[?12l[?25h[?25l[5;75H[34m[106m{[7;7H}[m[44;143H5,7 [7;7H[?12l[?25h[?25l[5;75H[34m{[7;7H}[m[44;143H6,0-1[8;1H[?12l[?25h[?25l[44;143H7,11 [9;11H[?12l[?25h[?25l[44;143H8[10;11H[?12l[?25h[?25l[44;143H9[11;11H[?12l[?25h[?25l[44;142H100,7[12;7H[?12l[?25h[?25l[44;144H1,0-1[13;1H[?12l[?25h[?25l[44;144H2,11 [14;11H[?12l[?25h[?25l[44;144H3[15;11H[?12l[?25h[?25l[44;144H4[16;11H[?12l[?25h[?25l[44;144H5,3 [17;3H[?12l[?25h[?25l[44;144H6,0-1[18;1H[?12l[?25h[?25l[44;144H7,11 [19;11H[?12l[?25h[?25l[44;144H8[20;11H[?12l[?25h[?25l[44;144H9[21;11H[?12l[?25h[?25l[44;143H10[22;11H[?12l[?25h[?25l[44;144H1,0-1[23;1H[?12l[?25h[?25l[44;144H2,11 [24;11H[?12l[?25h[?25l[44;144H3[25;11H[?12l[?25h[?25l[44;144H4,0-1[26;1H[?12l[?25h[?25l[44;144H5,2 [27;2H[?12l[?25h[?25l[44;144H6,11[28;11H[?12l[?25h[?25l[44;144H7,3 [29;3H[?12l[?25h[?25l[44;144H8,11[30;11H[?12l[?25h[?25l[44;144H9[31;11H[?12l[?25h[?25l[32;11H[106m([35C)[m[44;143H20[32;11H[?12l[?25h[?25l([35C)[44;144H1[33;11H[?12l[?25h[?25l[44;144H2,0-1[34;1H[?12l[?25h[?25l[44;144H3,2 [35;2H[?12l[?25h[?25l[44;144H4,11[36;11H[?12l[?25h[?25l[44;144H5,2 [37;2H[?12l[?25h[?25l[44;144H6,11[38;11H[?12l[?25h[?25l[44;144H7,3 [39;3H[?12l[?25h[?25l[44;144H8,11[40;11H[?12l[?25h[?25l[44;144H9[41;11H[?12l[?25h[?25l[44;143H30[42;11H[?12l[?25h[?25l[44;144H1[43;11H[?12l[?25h[?25l[1;43r[43;1H
3328[1;44r[43;2H [32munsigned[m [32mint[m bad_pkts;[44;142H[K[44;142H132,11[8C76%[43;11H[?12l[?25h[?25l[1;43r[43;1H
3329[1;44r[44;142H[K[44;142H133,0-1[7C76%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3330[1;44r[43;2H [32mint[m i;[44;142H[K[44;142H134,8[9C77%[43;8H[?12l[?25h[?25l[1;43r[43;1H
3331[1;44r[44;142H[K[44;142H135,0-1[7C78%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3332[1;44r[43;2H [32mint[m good = [31m1[m;[44;142H[K[44;142H136,11[8C79%[43;11H[?12l[?25h[?25l[1;43r[43;1H
3333[1;44r[44;142H[K[44;142H137,0-1[7C80%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3334[1;44r[43;2H [34m// Read the individual port registers[m[44;142H[K[44;142H138,11[8C81%[43;11H[?12l[?25h[?25l[1;43r[43;1H
3335[1;44r[43;2H [38;5;130mfor[m (i = [31m0[m; i < NUM_PORTS; i++) {[44;142H[K[44;142H139,11[8C82%[43;11H[?12l[?25h[?25l[1;43r[43;1H
3336[1;44r[43;4H [34m// Start with the status register[m[44;142H[K[44;142H140,11[8C82%[43;11H[?12l[?25h[?25l[1;43r[43;1H
3337[1;44r[43;4H readReg(&nf2, PHY_TEST_PHY_0_RX_STATUS_REG + i * PHY_TEST_PHY_GROUP_INST_OFFSET, &port_status);[44;142H[K[44;142H141,11[8C83%[43;11H[?12l[?25h[?25l[1;43r[43;1H
3338[1;44r[43;4H [38;5;130mif[m ((port_status & [31m0x100[m) == [31m0[m) {[44;142H[K[44;142H142,11[8C84%[43;11H[?12l[?25h[?25l[1;43r[43;1H
3339[1;44r[43;8H [34m//Kiran[m[44;142H[K[44;142H143,4-11 85%[43;11H[?12l[?25h[?25l[1;43r[43;1H
3340[1;44r[43;8H printw([31m"phyGetResult: port status bad"[m);[44;142H[K[44;142H144,4-11 86%[43;11H[?12l[?25h[?25l[1;43r[43;1H
3341[1;44r[43;6H good = [31m0[m;[44;142H[K[44;142H145,11[8C87%[43;11H[?12l[?25h[?25l[1;43r[43;1H
3342[1;44r[39;37H[106m{[m[43;4H [106m}[m[44;142H[K[44;142H146,5[9C88%[43;5H[?12l[?25h[?25l[1;43r[43;1H
3343[1;44r[38;37H{[42;5H}[44;142H[K[44;142H147,0-1[7C88%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3344[1;44r[43;4H [34m// Read the number of good/bad packets[m[44;142H[K[44;142H148,11[8C89%[43;11H[?12l[?25h[?25l[1;43r[43;1H
3345[1;44r[43;4H readReg(&nf2, PHY_TEST_PHY_0_RX_GOOD_PKT_CNT_REG + i * PHY_TEST_PHY_GROUP_INST_OFFSET, &good_pkts);[44;142H[K[44;142H149,11[8C90%[43;11H[?12l[?25h[?25l[1;43r[43;1H
3346[1;44r[43;4H readReg(&nf2, PHY_TEST_PHY_0_RX_ERR_PKT_CNT_REG + i * PHY_TEST_PHY_GROUP_INST_OFFSET, &bad_pkts);[44;142H[K[44;142H150,11[8C91%[43;11H[?12l[?25h[?25l[1;43r[43;1H
3347[1;44r[44;142H[K[44;142H151,0-1[7C92%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3348[1;44r[43;4H [34m// Update the good flag[m[44;142H[K[44;142H152,11[8C93%[43;11H[?12l[?25h[?25l[1;43r[43;1H
3349[1;44r[43;4H [38;5;130mif[m (bad_pkts != [31m0[m) {[44;142H[K[44;142H153,11[8C94%[43;11H[?12l[?25h[?25l[1;43r[43;1H
3350[1;44r[43;8H printw([31m"phyGetResult: found bad packets"[m);[44;142H[K[44;142H154,4-11 94%[43;11H[?12l[?25h[?25l[1;43r[43;1H
3351[1;44r[43;6H good = [31m0[m;[44;142H[K[44;142H155,11[8C95%[43;11H[?12l[?25h[?25l[1;43r[43;1H
3352[1;44r[40;24H[106m{[m[43;4H [106m}[m[44;142H[K[44;142H156,5[9C96%[43;5H[?12l[?25h[?25l[1;43r[43;1H
3353[1;44r[25;35H[106m{[m[39;24H{[42;5H}
3354 [106m}[m[44;142H[K[44;142H157,3[9C97%[43;3H[?12l[?25h[?25l[1;43r[43;1H
3355[1;44r[24;35H{[42;3H}[44;142H[K[44;142H158,0-1[7C98%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3356[1;44r[43;2H [38;5;130mreturn[m good;[44;142H[K[44;142H159,11[8C99%[43;11H[?12l[?25h[?25l[1;43r[43;1H
3357[1;44r[43;1H} [34m// phyGetResult[m[44;142H[K[44;142H160,11[8CBot[43;11H[?12l[?25h[?25l[44;143H59[42;11H[?12l[?25h[?25l[44;144H8,0-1[41;1H[?12l[?25h[?25l[22;35H[106m{[40;3H}[m[44;144H7,3 [40;3H[?12l[?25h[?25l[22;35H{[36;24H[106m{[39;5H}[m
3358 }[44;144H6,5[39;5H[?12l[?25h[?25l[36;24H{[39;5H}[44;144H5,11[38;11H[?12l[?25h[?25l[44;144H4,4-11[37;11H[?12l[?25h[?25l[44;144H3,11 [36;11H[?12l[?25h[?25l[44;144H2[35;11H[?12l[?25h[?25l[44;144H1,0-1[34;1H[?12l[?25h[?25l[44;144H0,11 [33;11H[?12l[?25h[?25l[44;143H49[32;11H[?12l[?25h[?25l[44;144H8[31;11H[?12l[?25h[?25l[44;144H7,0-1[30;1H[?12l[?25h[?25l[25;37H[106m{[29;5H}[m[44;144H6,5 [29;5H[?12l[?25h[?25l[25;37H{[29;5H}[44;144H5,11[28;11H[?12l[?25h[?25l[44;144H4,4-11[27;11H[?12l[?25h[?25l[44;146H5-12[27;12H[?12l[?25h[?25l[44;146H6-13[27;13H[?12l[?25h[?25l[44;146H7-14[27;14H[?12l[?25h[?25ltf[?12l[?25h[?25l[44;144H5,14 [28;14H[?12l[?25h[?25l[25;37H[106m{[29;5H}[m[44;144H6,5 [29;5H[?12l[?25h[?25l[25;37H{[29;5H}[44;144H7,0-1[30;1H[?12l[?25h[?25l[44;144H8,14 [31;14H[?12l[?25h[?25l[44;144H9[32;14H[?12l[?25h[?25l[44;143H50[33;14H[?12l[?25h[?25l[44;144H1,0-1[34;1H[?12l[?25h[?25l[44;144H2,14 [35;14H[?12l[?25h[?25l[44;144H3[36;14H[?12l[?25h[?25l[44;144H4,7-14[37;14H[?12l[?25h[?25ltf[?12l[?25h[?25l[44;142H[K[44;1H:[?12l[?25hw[?25l[?12l[?25hq[?25l[?12l[?25h
3359[?25l"selftest_phy.c" 160L, 4050C written
3360
3361
3362[?1l>[?12l[?25h[?1049l]0;netfpga@node1-1: ~/netfpga/projects/selftest/swnetfpga@node1-1:~/netfpga/projects/selftest/sw$ make
3363/bin/nf_register_gen.pl --project selftest
3364make: /bin/nf_register_gen.pl: Command not found
3365make: *** [registers] Error 127
3366]0;netfpga@node1-1: ~/netfpga/projects/selftest/swnetfpga@node1-1:~/netfpga/projects/selftest/sw$ cd -
3367/home/netfpga/netfpga
3368]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ make
3369echo /home/netfpga/netfpga/lib/Perl5:
3370/home/netfpga/netfpga/lib/Perl5:
3371if [ -f "lib/Makefile" ] ; then \
3372 make -C lib ; \
3373 fi
3374make[1]: Entering directory `/home/netfpga/netfpga/lib'
3375make -C C
3376make[2]: Entering directory `/home/netfpga/netfpga/lib/C'
3377make -C kernel
3378make[3]: Entering directory `/home/netfpga/netfpga/lib/C/kernel'
3379make -C /lib/modules/2.6.31-19-generic/build M=/home/netfpga/netfpga/lib/C/kernel LDDINC=/home/netfpga/netfpga/lib/C/kernel/../include modules
3380make[4]: Entering directory `/usr/src/linux-headers-2.6.31-19-generic'
3381 Building modules, stage 2.
3382 MODPOST 1 modules
3383make[4]: Leaving directory `/usr/src/linux-headers-2.6.31-19-generic'
3384make[3]: Leaving directory `/home/netfpga/netfpga/lib/C/kernel'
3385make -C download
3386make[3]: Entering directory `/home/netfpga/netfpga/lib/C/download'
3387make -C ../common
3388make[4]: Entering directory `/home/netfpga/netfpga/lib/C/common'
3389make[4]: Nothing to be done for `all'.
3390make[4]: Leaving directory `/home/netfpga/netfpga/lib/C/common'
3391make[3]: Leaving directory `/home/netfpga/netfpga/lib/C/download'
3392make -C reg_access
3393make[3]: Entering directory `/home/netfpga/netfpga/lib/C/reg_access'
3394make -C ../common
3395make[4]: Entering directory `/home/netfpga/netfpga/lib/C/common'
3396make[4]: Nothing to be done for `all'.
3397make[4]: Leaving directory `/home/netfpga/netfpga/lib/C/common'
3398make[3]: Leaving directory `/home/netfpga/netfpga/lib/C/reg_access'
3399make -C tools
3400make[3]: Entering directory `/home/netfpga/netfpga/lib/C/tools'
3401make -C nf_info
3402make[4]: Entering directory `/home/netfpga/netfpga/lib/C/tools/nf_info'
3403make -C ../../common
3404make[5]: Entering directory `/home/netfpga/netfpga/lib/C/common'
3405make[5]: Nothing to be done for `all'.
3406make[5]: Leaving directory `/home/netfpga/netfpga/lib/C/common'
3407make[4]: Leaving directory `/home/netfpga/netfpga/lib/C/tools/nf_info'
3408make[3]: Leaving directory `/home/netfpga/netfpga/lib/C/tools'
3409make[2]: Leaving directory `/home/netfpga/netfpga/lib/C'
3410make -C scripts
3411make[2]: Entering directory `/home/netfpga/netfpga/lib/scripts'
3412make -C cpci_reprogram
3413make[3]: Entering directory `/home/netfpga/netfpga/lib/scripts/cpci_reprogram'
3414make[3]: Nothing to be done for `all'.
3415make[3]: Leaving directory `/home/netfpga/netfpga/lib/scripts/cpci_reprogram'
3416make -C cpci_config_reg_access
3417make[3]: Entering directory `/home/netfpga/netfpga/lib/scripts/cpci_config_reg_access'
3418make[3]: Nothing to be done for `all'.
3419make[3]: Leaving directory `/home/netfpga/netfpga/lib/scripts/cpci_config_reg_access'
3420make[2]: Leaving directory `/home/netfpga/netfpga/lib/scripts'
3421make[1]: Leaving directory `/home/netfpga/netfpga/lib'
3422echo /home/netfpga/netfpga/lib/Perl5:
3423/home/netfpga/netfpga/lib/Perl5:
3424if [ -f "bitfiles/Makefile" ] ; then \
3425 make -C bitfiles ; \
3426 fi
3427make[1]: Entering directory `/home/netfpga/netfpga/bitfiles'
3428make[1]: Nothing to be done for `all'.
3429make[1]: Leaving directory `/home/netfpga/netfpga/bitfiles'
3430echo /home/netfpga/netfpga/lib/Perl5:
3431/home/netfpga/netfpga/lib/Perl5:
3432if [ -f "projects/Makefile" ] ; then \
3433 make -C projects ; \
3434 fi
3435make[1]: Entering directory `/home/netfpga/netfpga/projects'
3436make -C reference_nic
3437make[2]: Entering directory `/home/netfpga/netfpga/projects/reference_nic'
3438make -C sw
3439make[3]: Entering directory `/home/netfpga/netfpga/projects/reference_nic/sw'
3440/home/netfpga/netfpga/bin/nf_register_gen.pl --project reference_nic
3441
3442NetFPGA environment:
3443 Root dir: /home/netfpga/netfpga
3444 Project name: reference_nic
3445 Project dir: /home/netfpga/netfpga/projects/reference_nic
3446 Work dir: /tmp/netfpga
3447
3448Processing /home/netfpga/netfpga/lib/verilog/core/common/xml/global.xml...
3449Processing /home/netfpga/netfpga/lib/verilog/core/common/xml/nf_defines.xml...
3450Processing /home/netfpga/netfpga/projects/reference_nic/include/project.xml...
3451
3452Project: 'Reference NIC' (reference_nic)
3453Description: Reference NIC
3454Version: 1.1.0
3455Device ID: 1
3456
3457Processing /home/netfpga/netfpga/lib/verilog/core/io_queues/cpu_dma_queue/xml/cpu_dma_queue.xml...
3458Processing /home/netfpga/netfpga/lib/verilog/core/io_queues/ethernet_queue/xml/ethernet_mac.xml...
3459WARNING: No module specific XML found for module 'contrib/ucsd/gig_eth_mac'
3460Processing /home/netfpga/netfpga/lib/verilog/core/input_arbiter/rr_input_arbiter/xml/rr_input_arbiter.xml...
3461WARNING: No module specific XML found for module 'core/nf2/generic_top'
3462WARNING: No module specific XML found for module 'core/nf2/reference_core'
3463WARNING: No module specific XML found for module 'core/output_port_lookup/nic'
3464Processing /home/netfpga/netfpga/lib/verilog/core/output_queues/sram_rr_output_queues/xml/sram_rr_output_queues.xml...
3465WARNING: No module specific XML found for module 'core/sram_arbiter/sram_weighted_rr'
3466WARNING: No module specific XML found for module 'core/user_data_path/reference_user_data_path'
3467Processing /home/netfpga/netfpga/lib/verilog/core/io/mdio/xml/mdio.xml...
3468WARNING: No module specific XML found for module 'core/cpci_bus'
3469Processing /home/netfpga/netfpga/lib/verilog/core/dma/xml/dma.xml...
3470WARNING: No module specific XML found for module 'core/user_data_path/udp_reg_master'
3471WARNING: No module specific XML found for module 'core/io_queues/add_rm_hdr'
3472Processing /home/netfpga/netfpga/lib/verilog/core/strip_headers/keep_length/xml/strip_headers.xml...
3473Processing /home/netfpga/netfpga/lib/verilog/core/utils/xml/device_id_reg.xml...
3474WARNING: No module specific XML found for module 'core/utils/generic_regs'
3475make[3]: Leaving directory `/home/netfpga/netfpga/projects/reference_nic/sw'
3476make[2]: Leaving directory `/home/netfpga/netfpga/projects/reference_nic'
3477make -C reference_router
3478make[2]: Entering directory `/home/netfpga/netfpga/projects/reference_router'
3479make -C sw
3480make[3]: Entering directory `/home/netfpga/netfpga/projects/reference_router/sw'
3481/home/netfpga/netfpga/bin/nf_register_gen.pl --project reference_router
3482
3483NetFPGA environment:
3484 Root dir: /home/netfpga/netfpga
3485 Project name: reference_router
3486 Project dir: /home/netfpga/netfpga/projects/reference_router
3487 Work dir: /tmp/netfpga
3488
3489Processing /home/netfpga/netfpga/lib/verilog/core/common/xml/global.xml...
3490Processing /home/netfpga/netfpga/lib/verilog/core/common/xml/nf_defines.xml...
3491Processing /home/netfpga/netfpga/projects/reference_router/include/project.xml...
3492
3493Project: 'Reference router' (reference_router)
3494Description: Reference IPv4 router
3495Version: 1.0.0
3496Device ID: 2
3497
3498Processing /home/netfpga/netfpga/lib/verilog/core/io_queues/cpu_dma_queue/xml/cpu_dma_queue.xml...
3499Processing /home/netfpga/netfpga/lib/verilog/core/io_queues/ethernet_queue/xml/ethernet_mac.xml...
3500WARNING: No module specific XML found for module 'contrib/ucsd/gig_eth_mac'
3501Processing /home/netfpga/netfpga/lib/verilog/core/input_arbiter/rr_input_arbiter/xml/rr_input_arbiter.xml...
3502WARNING: No module specific XML found for module 'core/nf2/generic_top'
3503WARNING: No module specific XML found for module 'core/nf2/reference_core'
3504Processing /home/netfpga/netfpga/lib/verilog/core/output_port_lookup/cam_router/xml/cam_router.xml...
3505Processing /home/netfpga/netfpga/lib/verilog/core/output_queues/sram_rr_output_queues/xml/sram_rr_output_queues.xml...
3506WARNING: No module specific XML found for module 'core/sram_arbiter/sram_weighted_rr'
3507WARNING: No module specific XML found for module 'core/user_data_path/reference_user_data_path'
3508Processing /home/netfpga/netfpga/lib/verilog/core/io/mdio/xml/mdio.xml...
3509WARNING: No module specific XML found for module 'core/cpci_bus'
3510Processing /home/netfpga/netfpga/lib/verilog/core/dma/xml/dma.xml...
3511WARNING: No module specific XML found for module 'core/user_data_path/udp_reg_master'
3512WARNING: No module specific XML found for module 'core/io_queues/add_rm_hdr'
3513Processing /home/netfpga/netfpga/lib/verilog/core/strip_headers/keep_length/xml/strip_headers.xml...
3514Processing /home/netfpga/netfpga/lib/verilog/core/utils/xml/device_id_reg.xml...
3515WARNING: No module specific XML found for module 'core/utils/generic_regs'
3516make[3]: Leaving directory `/home/netfpga/netfpga/projects/reference_router/sw'
3517make[2]: Leaving directory `/home/netfpga/netfpga/projects/reference_router'
3518make -C reference_switch
3519make[2]: Entering directory `/home/netfpga/netfpga/projects/reference_switch'
3520make -C sw
3521make[3]: Entering directory `/home/netfpga/netfpga/projects/reference_switch/sw'
3522/home/netfpga/netfpga/bin/nf_register_gen.pl --project reference_switch
3523
3524NetFPGA environment:
3525 Root dir: /home/netfpga/netfpga
3526 Project name: reference_switch
3527 Project dir: /home/netfpga/netfpga/projects/reference_switch
3528 Work dir: /tmp/netfpga
3529
3530Processing /home/netfpga/netfpga/lib/verilog/core/common/xml/global.xml...
3531Processing /home/netfpga/netfpga/lib/verilog/core/common/xml/nf_defines.xml...
3532Processing /home/netfpga/netfpga/projects/reference_switch/include/project.xml...
3533
3534Project: 'Reference Switch' (reference_switch)
3535Description: Reference Switch
3536Version: 1.0.0
3537Device ID: 3
3538
3539Processing /home/netfpga/netfpga/lib/verilog/core/io_queues/cpu_dma_queue/xml/cpu_dma_queue.xml...
3540Processing /home/netfpga/netfpga/lib/verilog/core/io_queues/ethernet_queue/xml/ethernet_mac.xml...
3541WARNING: No module specific XML found for module 'contrib/ucsd/gig_eth_mac'
3542Processing /home/netfpga/netfpga/lib/verilog/core/input_arbiter/rr_input_arbiter/xml/rr_input_arbiter.xml...
3543WARNING: No module specific XML found for module 'core/nf2/generic_top'
3544WARNING: No module specific XML found for module 'core/nf2/reference_core'
3545Processing /home/netfpga/netfpga/lib/verilog/core/output_port_lookup/learning_cam_switch/xml/learning_cam_switch.xml...
3546Processing /home/netfpga/netfpga/lib/verilog/core/output_queues/sram_rr_output_queues/xml/sram_rr_output_queues.xml...
3547WARNING: No module specific XML found for module 'core/sram_arbiter/sram_weighted_rr'
3548WARNING: No module specific XML found for module 'core/user_data_path/reference_user_data_path'
3549WARNING: No module specific XML found for module 'core/user_data_path/udp_reg_master'
3550Processing /home/netfpga/netfpga/lib/verilog/core/io/mdio/xml/mdio.xml...
3551WARNING: No module specific XML found for module 'core/cpci_bus'
3552Processing /home/netfpga/netfpga/lib/verilog/core/dma/xml/dma.xml...
3553WARNING: No module specific XML found for module 'core/io_queues/add_rm_hdr'
3554Processing /home/netfpga/netfpga/lib/verilog/core/strip_headers/keep_length/xml/strip_headers.xml...
3555Processing /home/netfpga/netfpga/lib/verilog/core/utils/xml/device_id_reg.xml...
3556make[3]: Leaving directory `/home/netfpga/netfpga/projects/reference_switch/sw'
3557make[2]: Leaving directory `/home/netfpga/netfpga/projects/reference_switch'
3558make -C router_buffer_sizing
3559make[2]: Entering directory `/home/netfpga/netfpga/projects/router_buffer_sizing'
3560make -C sw
3561make[3]: Entering directory `/home/netfpga/netfpga/projects/router_buffer_sizing/sw'
3562make[3]: Nothing to be done for `all'.
3563make[3]: Leaving directory `/home/netfpga/netfpga/projects/router_buffer_sizing/sw'
3564make[2]: Leaving directory `/home/netfpga/netfpga/projects/router_buffer_sizing'
3565make -C router_kit
3566make[2]: Entering directory `/home/netfpga/netfpga/projects/router_kit'
3567make -C sw
3568make[3]: Entering directory `/home/netfpga/netfpga/projects/router_kit/sw'
3569/home/netfpga/netfpga/bin/nf_register_gen.pl --project reference_router
3570
3571NetFPGA environment:
3572 Root dir: /home/netfpga/netfpga
3573 Project name: reference_router
3574 Project dir: /home/netfpga/netfpga/projects/reference_router
3575 Work dir: /tmp/netfpga
3576
3577Processing /home/netfpga/netfpga/lib/verilog/core/common/xml/global.xml...
3578Processing /home/netfpga/netfpga/lib/verilog/core/common/xml/nf_defines.xml...
3579Processing /home/netfpga/netfpga/projects/reference_router/include/project.xml...
3580
3581Project: 'Reference router' (reference_router)
3582Description: Reference IPv4 router
3583Version: 1.0.0
3584Device ID: 2
3585
3586Processing /home/netfpga/netfpga/lib/verilog/core/io_queues/cpu_dma_queue/xml/cpu_dma_queue.xml...
3587Processing /home/netfpga/netfpga/lib/verilog/core/io_queues/ethernet_queue/xml/ethernet_mac.xml...
3588WARNING: No module specific XML found for module 'contrib/ucsd/gig_eth_mac'
3589Processing /home/netfpga/netfpga/lib/verilog/core/input_arbiter/rr_input_arbiter/xml/rr_input_arbiter.xml...
3590WARNING: No module specific XML found for module 'core/nf2/generic_top'
3591WARNING: No module specific XML found for module 'core/nf2/reference_core'
3592Processing /home/netfpga/netfpga/lib/verilog/core/output_port_lookup/cam_router/xml/cam_router.xml...
3593Processing /home/netfpga/netfpga/lib/verilog/core/output_queues/sram_rr_output_queues/xml/sram_rr_output_queues.xml...
3594WARNING: No module specific XML found for module 'core/sram_arbiter/sram_weighted_rr'
3595WARNING: No module specific XML found for module 'core/user_data_path/reference_user_data_path'
3596Processing /home/netfpga/netfpga/lib/verilog/core/io/mdio/xml/mdio.xml...
3597WARNING: No module specific XML found for module 'core/cpci_bus'
3598Processing /home/netfpga/netfpga/lib/verilog/core/dma/xml/dma.xml...
3599WARNING: No module specific XML found for module 'core/user_data_path/udp_reg_master'
3600WARNING: No module specific XML found for module 'core/io_queues/add_rm_hdr'
3601Processing /home/netfpga/netfpga/lib/verilog/core/strip_headers/keep_length/xml/strip_headers.xml...
3602Processing /home/netfpga/netfpga/lib/verilog/core/utils/xml/device_id_reg.xml...
3603WARNING: No module specific XML found for module 'core/utils/generic_regs'
3604ln -f -s ../../reference_router/lib/C/reg_defines_reference_router.h reg_defines.h
3605make[3]: Leaving directory `/home/netfpga/netfpga/projects/router_kit/sw'
3606make[2]: Leaving directory `/home/netfpga/netfpga/projects/router_kit'
3607make -C scone
3608make[2]: Entering directory `/home/netfpga/netfpga/projects/scone'
3609make -C sw
3610make[3]: Entering directory `/home/netfpga/netfpga/projects/scone/sw'
3611/home/netfpga/netfpga/bin/nf_register_gen.pl --project reference_router
3612
3613NetFPGA environment:
3614 Root dir: /home/netfpga/netfpga
3615 Project name: reference_router
3616 Project dir: /home/netfpga/netfpga/projects/reference_router
3617 Work dir: /tmp/netfpga
3618
3619Processing /home/netfpga/netfpga/lib/verilog/core/common/xml/global.xml...
3620Processing /home/netfpga/netfpga/lib/verilog/core/common/xml/nf_defines.xml...
3621Processing /home/netfpga/netfpga/projects/reference_router/include/project.xml...
3622
3623Project: 'Reference router' (reference_router)
3624Description: Reference IPv4 router
3625Version: 1.0.0
3626Device ID: 2
3627
3628Processing /home/netfpga/netfpga/lib/verilog/core/io_queues/cpu_dma_queue/xml/cpu_dma_queue.xml...
3629Processing /home/netfpga/netfpga/lib/verilog/core/io_queues/ethernet_queue/xml/ethernet_mac.xml...
3630WARNING: No module specific XML found for module 'contrib/ucsd/gig_eth_mac'
3631Processing /home/netfpga/netfpga/lib/verilog/core/input_arbiter/rr_input_arbiter/xml/rr_input_arbiter.xml...
3632WARNING: No module specific XML found for module 'core/nf2/generic_top'
3633WARNING: No module specific XML found for module 'core/nf2/reference_core'
3634Processing /home/netfpga/netfpga/lib/verilog/core/output_port_lookup/cam_router/xml/cam_router.xml...
3635Processing /home/netfpga/netfpga/lib/verilog/core/output_queues/sram_rr_output_queues/xml/sram_rr_output_queues.xml...
3636WARNING: No module specific XML found for module 'core/sram_arbiter/sram_weighted_rr'
3637WARNING: No module specific XML found for module 'core/user_data_path/reference_user_data_path'
3638Processing /home/netfpga/netfpga/lib/verilog/core/io/mdio/xml/mdio.xml...
3639WARNING: No module specific XML found for module 'core/cpci_bus'
3640Processing /home/netfpga/netfpga/lib/verilog/core/dma/xml/dma.xml...
3641WARNING: No module specific XML found for module 'core/user_data_path/udp_reg_master'
3642WARNING: No module specific XML found for module 'core/io_queues/add_rm_hdr'
3643Processing /home/netfpga/netfpga/lib/verilog/core/strip_headers/keep_length/xml/strip_headers.xml...
3644Processing /home/netfpga/netfpga/lib/verilog/core/utils/xml/device_id_reg.xml...
3645WARNING: No module specific XML found for module 'core/utils/generic_regs'
3646ln -f -s /home/netfpga/netfpga/projects/reference_router/lib/C/reg_defines_reference_router.h reg_defines.h
3647make[3]: Leaving directory `/home/netfpga/netfpga/projects/scone/sw'
3648make[2]: Leaving directory `/home/netfpga/netfpga/projects/scone'
3649make -C selftest
3650make[2]: Entering directory `/home/netfpga/netfpga/projects/selftest'
3651make -C sw
3652make[3]: Entering directory `/home/netfpga/netfpga/projects/selftest/sw'
3653/home/netfpga/netfpga/bin/nf_register_gen.pl --project selftest
3654
3655NetFPGA environment:
3656 Root dir: /home/netfpga/netfpga
3657 Project name: selftest
3658 Project dir: /home/netfpga/netfpga/projects/selftest
3659 Work dir: /tmp/netfpga
3660
3661Processing /home/netfpga/netfpga/lib/verilog/core/common/xml/global.xml...
3662Processing /home/netfpga/netfpga/lib/verilog/core/common/xml/nf_defines.xml...
3663Processing /home/netfpga/netfpga/projects/selftest/include/project.xml...
3664
3665Project: 'Selftest' (selftest)
3666Description: NetFPGA selftest -- exercises all major subsystems of the board
3667Version: 1.1.0
3668Device ID: 5
3669
3670WARNING: No module specific XML found for module 'core/nf2/reference_core'
3671Processing /home/netfpga/netfpga/lib/verilog/core/io/mdio/xml/mdio.xml...
3672WARNING: No module specific XML found for module 'core/cpci_bus'
3673Processing /home/netfpga/netfpga/lib/verilog/core/dma/xml/dma.xml...
3674WARNING: No module specific XML found for module 'core/ddr2_controller'
3675Processing /home/netfpga/netfpga/lib/verilog/core/utils/xml/device_id_reg.xml...
3676Processing /home/netfpga/netfpga/projects/selftest/include/clock_test.xml...
3677Processing /home/netfpga/netfpga/projects/selftest/include/dram_test.xml...
3678Processing /home/netfpga/netfpga/projects/selftest/include/phy_test.xml...
3679Processing /home/netfpga/netfpga/projects/selftest/include/reg_file.xml...
3680Processing /home/netfpga/netfpga/projects/selftest/include/reg_reflect.xml...
3681Processing /home/netfpga/netfpga/projects/selftest/include/serial_test.xml...
3682Processing /home/netfpga/netfpga/projects/selftest/include/sram_msb.xml...
3683Processing /home/netfpga/netfpga/projects/selftest/include/sram_test.xml...
3684/home/netfpga/netfpga/bin/nf_register_gen.pl --project cpci
3685
3686NetFPGA environment:
3687 Root dir: /home/netfpga/netfpga
3688 Project name: cpci
3689 Project dir: /home/netfpga/netfpga/projects/cpci
3690 Work dir: /tmp/netfpga
3691
3692Processing /home/netfpga/netfpga/lib/verilog/core/common/xml/global.xml...
3693Processing /home/netfpga/netfpga/lib/verilog/core/common/xml/nf_defines.xml...
3694Processing /home/netfpga/netfpga/projects/cpci/include/project.xml...
3695
3696Project: 'CPCI' (cpci)
3697Description: NetFPGA PCI interface
3698Version: 4.1.0
3699Device ID: 0
3700
3701Processing /home/netfpga/netfpga/projects/cpci/include/cpci_regs.xml...
3702gcc -g -c -o selftest_phy.o selftest_phy.c
3703gcc -lncurses selftest.o selftest_dram.o selftest_sram.o selftest_serial.o selftest_phy.o selftest_mdio.o selftest_reg.o selftest_clk.o selftest_dma.o or_ip.o or_utils.o /home/netfpga/netfpga/lib/C/common/nf2util.o /home/netfpga/netfpga/lib/C/common/nf2util_proxy_common.o -o selftest
3704make[3]: Leaving directory `/home/netfpga/netfpga/projects/selftest/sw'
3705make[2]: Leaving directory `/home/netfpga/netfpga/projects/selftest'
3706make[1]: Leaving directory `/home/netfpga/netfpga/projects'
3707]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ cd -
3708/home/netfpga/netfpga/projects/selftest/sw
3709]0;netfpga@node1-1: ~/netfpga/projects/selftest/swnetfpga@node1-1:~/netfpga/projects/selftest/sw$ cd -makecd -make[K[K[K[Ksudo select[K[K[Kftest[K[K[K[K[K[K[K[K,.[K[K[K[K[K[K[K./selftest -n
3710Found net device: nf2c0
3711CPCI Information
3712----------------
3713Version: 4 (rev 1)
3714
3715Device (Virtex) Information
3716---------------------------
3717Project directory: selftest
3718Project name: Selftest
3719Project description: NetFPGA selftest -- exercises all major subsystems of the board
3720
3721Device ID: 5
3722Version: 1.1.0
3723Built against CPCI version: 4 (rev 1)
3724
3725NetFPGA selftest 1.00 alpha
3726Running..... phyGetResult: port status badphyGetResult: found bad packetsphyGetResult: port status badphyGetResult: found bad packetsphyGetResult: port status badphyGetResult: found bad packetsphyGetResult: port status badphyGetResult: found bad packetsFAILED. Failing tests: PHY interface, DMA interface
3727]0;netfpga@node1-1: ~/netfpga/projects/selftest/swnetfpga@node1-1:~/netfpga/projects/selftest/sw$ sudo bash[K[K[K[Ksu -
3728]0;root@node1-1.sb9.orbit-lab.org: ~root@node1-1:~# cd /ho[K[K[K[K[K[Kexit[2Plsshutdown -r now[4Pupdate-grub[K[K[K[K[K[K[K[K[K[K[K~netfpga/proj[K[K[K[Knetfpga/projects/selftest/sw/
3729bad_pkt_dump selftest
3730root@node1-1:~# ~netfpga/netfpga/projects/selftest/sw/selftest -m[Kn
3731Found net device: nf2c0
3732CPCI Information
3733----------------
3734Version: 4 (rev 1)
3735
3736Device (Virtex) Information
3737---------------------------
3738Project directory: selftest
3739Project name: Selftest
3740Project description: NetFPGA selftest -- exercises all major subsystems of the board
3741
3742Device ID: 5
3743Version: 1.1.0
3744Built against CPCI version: 4 (rev 1)
3745
3746NetFPGA selftest 1.00 alpha
3747Running..... phyGetResult: port status badphyGetResult: found bad packetsphyGetResult: port status badphyGetResult: found bad packetsphyGetResult: port status badphyGetResult: found bad packetsphyGetResult: port status badphyGetResult: found bad packetsFAILED. Failing tests: PHY interface
3748]0;root@node1-1.sb9.orbit-lab.org: ~root@node1-1:~# ls
3749[0m[01;31momf-common-5.2_ubuntu2_all.deb[0m
3750[m]0;root@node1-1.sb9.orbit-lab.org: ~root@node1-1:~# ls -al
3751total 188
3752drwx------ 6 root root 4096 2011-03-09 20:36 [0m[01;34m.[0m
3753drwxr-xr-x 21 root root 4096 2010-10-22 03:51 [01;34m..[0m
3754drwx------ 2 root root 4096 2010-01-29 02:36 [01;34m.aptitude[0m
3755-rw------- 1 root root 751 2011-03-10 14:50 .bash_history
3756-rw-r--r-- 1 root root 2227 2009-04-27 09:56 .bashrc
3757drwxr-xr-x 2 root root 4096 2010-02-01 05:12 [01;34m.cache[0m
3758drwxr-xr-x 2 root root 4096 2010-01-29 02:36 [01;34m.debtags[0m
3759-rw-r--r-- 1 root root 140614 2011-01-19 04:26 [01;31momf-common-5.2_ubuntu2_all.deb[0m
3760-rw-r--r-- 1 root root 140 2007-11-19 17:57 .profile
3761-rw------- 1 root root 6120 2011-03-09 20:36 .viminfo
3762drwx------ 2 root root 4096 2010-02-01 05:44 [01;34m.w3m[0m
3763[m]0;root@node1-1.sb9.orbit-lab.org: ~root@node1-1:~# exit
3764logout
3765]0;netfpga@node1-1: ~/netfpga/projects/selftest/swnetfpga@node1-1:~/netfpga/projects/selftest/sw$ vi selftest.c[K[K_phy.c[K[K[K[K[K[K[Kt.c
3766[?1049h[?1h=[1;44r[?12;25h[?12l[?25h[27m[m[H[2J[?25l[44;1H"selftest.c" 512L, 10370C[>c[1;1H[34m/* ****************************************************************************
3767 * vim:set shiftwidth=2 softtabstop=2 expandtab:
3768 * $Id: selftest.c 6010 2010-03-14 08:24:50Z grg $
3769 *
3770 * Module: selftest.c
3771 * Project: NetFPGA 2.1
3772 * Description: Interface with the self-test modules on the NetFPGA
3773 * to help diagnose problems.
3774 *
3775 * Change history:
3776 *
3777 */[m
3778
3779[35m#include [m[31m<stdio.h>[m
3780[35m#include [m[31m<stdlib.h>[m
3781[35m#include [m[31m<unistd.h>[m
3782
3783[35m#include [m[31m<sys/types.h>[m
3784[35m#include [m[31m<sys/stat.h>[m
3785[35m#include [m[31m<sys/socket.h>[m
3786[35m#include [m[31m<sys/time.h>[m
3787
3788[35m#include [m[31m<net/if.h>[m
3789
3790[35m#include [m[31m<time.h>[m
3791
3792[35m#include [m[31m<signal.h>[m
3793
3794[35m#include [m[31m"../lib/C/reg_defines_selftest.h"[m
3795[35m#include [m[31m"../../cpci/lib/C/reg_defines_cpci.h"[m
3796[35m#include [m[31m"../../../lib/C/common/nf2util.h"[m
3797[35m#include [m[31m<curses.h>[m
3798[35m#include [m[31m"selftest.h"[m
3799[35m#include [m[31m"selftest_dram.h"[m
3800[35m#include [m[31m"selftest_sram.h"[m
3801[35m#include [m[31m"selftest_serial.h"[m
3802[35m#include [m[31m"selftest_phy.h"[m
3803[35m#include [m[31m"selftest_mdio.h"[m
3804[35m#include [m[31m"selftest_reg.h"[m
3805[35m#include [m[31m"selftest_clk.h"[m
3806[35m#include [m[31m"selftest_dma.h"[m
3807
3808[35m#define PATHLEN [m[31m80[m[44;142H1,1[11CTop[1;1H[?12l[?25hP+q436f\P+q6b75\P+q6b64\P+q6b72\P+q6b6c\P+q2332\P+q2334\P+q2569\P+q2a37\P+q6b31\P+q6b32\[27m[m[H[2J[?25l[1;1H[34m/* ****************************************************************************
3809 * vim:set shiftwidth=2 softtabstop=2 expandtab:
3810 * $Id: selftest.c 6010 2010-03-14 08:24:50Z grg $
3811 *
3812 * Module: selftest.c
3813 * Project: NetFPGA 2.1
3814 * Description: Interface with the self-test modules on the NetFPGA
3815 * to help diagnose problems.
3816 *
3817 * Change history:
3818 *
3819 */[m
3820
3821[35m#include [m[31m<stdio.h>[m
3822[35m#include [m[31m<stdlib.h>[m
3823[35m#include [m[31m<unistd.h>[m
3824
3825[35m#include [m[31m<sys/types.h>[m
3826[35m#include [m[31m<sys/stat.h>[m
3827[35m#include [m[31m<sys/socket.h>[m
3828[35m#include [m[31m<sys/time.h>[m
3829
3830[35m#include [m[31m<net/if.h>[m
3831
3832[35m#include [m[31m<time.h>[m
3833
3834[35m#include [m[31m<signal.h>[m
3835
3836[35m#include [m[31m"../lib/C/reg_defines_selftest.h"[m
3837[35m#include [m[31m"../../cpci/lib/C/reg_defines_cpci.h"[m
3838[35m#include [m[31m"../../../lib/C/common/nf2util.h"[m
3839[35m#include [m[31m<curses.h>[m
3840[35m#include [m[31m"selftest.h"[m
3841[35m#include [m[31m"selftest_dram.h"[m
3842[35m#include [m[31m"selftest_sram.h"[m
3843[35m#include [m[31m"selftest_serial.h"[m
3844[35m#include [m[31m"selftest_phy.h"[m
3845[35m#include [m[31m"selftest_mdio.h"[m
3846[35m#include [m[31m"selftest_reg.h"[m
3847[35m#include [m[31m"selftest_clk.h"[m
3848[35m#include [m[31m"selftest_dma.h"[m
3849
3850[35m#define PATHLEN [m[31m80[m[44;142H1,1[11CTop
3851"selftest.c" 512L, 10370C[44;142H[K[44;142H1,1[11CTop[1;1H[?12l[?25hP+q6b33\[?25l[?12l[?25hP+q6b34\P+q6b35\P+q6b36\P+q6b37\P+q6b38\P+q6b39\P+q6b3b\P+q4631\P+q4632\P+q2531\P+q2638\P+q6b62\P+q6b49\P+q6b44\P+q6b68\P+q4037\P+q6b50\P+q6b4e\P+q4b31\P+q4b33\P+q4b34\P+q4b35\P+q6b42\[?25l[44;1H[K[44;1H:[?12l[?25h$[?25l[?12l[?25h
3852[?25l[27m[m[H[2J[1;1H[34m// verbose = 1;
3853// break;
3854// case 'l': /* log file */
3855// log_file_name = optarg;
3856// break;[m[6;9H [38;5;130mcase[m [31m'i'[m: [34m/* interface name */[m[7;12H nf2.device_name = optarg;[8;12H [38;5;130mbreak[m;
3857 [38;5;130mcase[m [31m'n'[m: [34m/* without SATA test */[m[10;6H no_sata_flg = [31m1[m;[11;6H [38;5;130mbreak[m;[12;9H [38;5;130mcase[m [31m'?'[m:[13;12H [38;5;130mif[m (isprint (optopt))[14;15H fprintf ([31mstderr[m, [31m"Unknown option `-[m[35m%c[m[31m'.[m[35m\n[m[31m"[m, optopt);[15;12H [38;5;130melse[m[16;15H fprintf ([31mstderr[m,[17;24H [31m"Unknown option character `[m[35m\\[m[31mx[m[35m%x[m[31m'.[m[35m\n[m[31m"[m,[18;24H optopt);[19;9H [38;5;130mdefault[m:[20;12H usage(argv[[31m0[m]);[21;12H exit([31m1[m);[22;9H }
3858
3859[34m// if (verbose) {
3860// printf ("logfile = %s. bin file = %s\n", log_file_name, bin_file_name);
3861// }[m
3862
3863}
3864
3865[34m/*
3866 * Describe usage of this program.
3867 */[m
3868[32mvoid[m usage ([32mchar[m *prog) {
3869 printf([31m"Usage: [m[35m%s[m[31m <options> [filename.bin | filename.bit][m[35m\n[m[31m"[m, prog);
3870 printf([31m"[m[35m\n[m[31mOptions: -l <logfile> (default is stdout).[m[35m\n[m[31m"[m);
3871 printf([31m" -i <iface> : interface name.[m[35m\n[m[31m"[m);
3872 printf([31m" -v : be verbose.[m[35m\n[m[31m"[m);
3873 printf([31m" -c : run continuously[m[35m\n[m[31m"[m);
3874 printf([31m" -s : short test mode[m[35m\n[m[31m"[m);
3875 printf([31m" -n : disable SATA testing[m[35m\n[m[31m"[m);
3876}[44;142H512,0-1[7CBot[43;1H[?12l[?25h[?25l[44;144H1[42;1H[?12l[?25h[?25l[33;25H[106m{[41;1H}[m[44;144H0,1 [41;1H[?12l[?25h[?25l[33;25H{[41;1H}[44;143H09[40;1H[?12l[?25h[?25l[44;144H8[39;1H[?12l[?25h[?25l[44;144H7[38;1H[?12l[?25h[?25l[44;144H6[37;1H[?12l[?25h[?25l[44;144H5[36;1H[?12l[?25h[?25l[44;144H4[35;1H[?12l[?25h[?25l[44;144H3[34;1H[?12l[?25h[?25l[44;144H2[33;1H[?12l[?25h[?25l[44;144H1[32;1H[?12l[?25h[?25l[44;144H0[31;1H[?12l[?25h[?25l[44;142H499[30;1H[?12l[?25h[?25l[44;144H8,0-1[29;1H[?12l[?25h[?25l[44;144H7,1 [28;1H[?12l[?25h[?25l[44;144H6,0-1[27;1H[?12l[?25h[?25l[44;144H5,1 [26;1H[?12l[?25h[?25l[44;144H4[25;1H[?12l[?25h[?25l[44;144H3[24;1H[?12l[?25h[?25l[44;144H2,0-1[23;1H[?12l[?25h[?25l[44;144H1,1-8[22;8H[?12l[?25h[?25l[44;144H0[21;8H[?12l[?25h[?25l[44;143H89[20;8H[?12l[?25h[?25l[44;144H8[19;8H[?12l[?25h[?25l[44;144H7,1 [18;1H[?12l[?25h[?25l[44;144H6[17;1H[?12l[?25h[?25l[44;144H5[16;1H[?12l[?25h[?25l[44;144H4,1-8[15;8H[?12l[?25h[?25l[44;144H3,1 [14;1H[?12l[?25h[?25l[44;144H2,1-8[13;8H[?12l[?25h[?25l[44;144H1[12;8H[?12l[?25h[?25l[44;144H0,1 [11;1H[?12l[?25h[?25l[44;143H79[10;1H[?12l[?25h[?25l[44;144H8[9;1H[?12l[?25h[?25l[44;144H7,1-8[8;8H[?12l[?25h[?25l[44;144H6[7;8H[?12l[?25h[?25l[44;144H5[6;8H[?12l[?25h[?25l[44;144H4,1 [5;1H[?12l[?25h[?25l[44;144H3[4;1H[?12l[?25h[?25l[44;144H2[3;1H[?12l[?25h[?25l[44;144H1[2;1H[?12l[?25h[?25l[44;144H0[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;1H[34m// case 'v':[m[44;142H[K[44;142H469,1[9C99%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;12H [38;5;130mbreak[m;[44;142H[K[44;142H468,1-8[7C99%[1;8H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;12H continuous = [31m0[m;[44;142H[K[44;142H467,1-8[7C99%[1;8H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;12H shortrun = [31m1[m;[44;142H[K[44;142H466,1-8[7C99%[1;8H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;9H [38;5;130mcase[m [31m's'[m:[44;142H[K[44;142H465,1-8[7C98%[1;8H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;12H [38;5;130mbreak[m;[44;142H[K[44;142H464,1-8[7C98%[1;8H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;12H shortrun = [31m0[m;[44;142H[K[44;142H463,1-8[7C98%[1;8H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;12H continuous = [31m1[m;[44;142H[K[44;142H462,1-8[7C98%[1;8H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;9H [38;5;130mcase[m [31m'c'[m:[44;142H[K[44;142H461,1-8[7C98%[1;8H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;9H {[44;142H[K[44;142H460,1-8[7C97%[1;8H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;6H [38;5;130mswitch[m (c)[44;142H[K[44;142H459,1[9C97%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;3H [38;5;130mwhile[m ((c = getopt (argc, argv, [31m"csi:n"[m)) != -[31m1[m)[44;142H[K[44;142H458,1[9C97%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;3H opterr = [31m0[m;[44;142H[K[44;142H457,1[9C97%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;3H [34m/* don't want getopt to moan - I can do that just fine thanks! */[m[44;142H[K[44;142H456,1[9C97%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[44;142H[K[44;142H455,0-1[7C96%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;3H verbose = [31m0[m;[44;142H[K[44;142H454,1[9C96%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;3H [34m/* set defaults */[m[44;142H[K[44;142H453,1[9C96%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[44;142H[K[44;142H452,0-1[7C96%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;3H [32mchar[m c;[44;142H[K[44;142H451,1[9C95%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[44;142H[K[44;142H450,0-1[7C95%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;1H[32mvoid[m processArgs ([32mint[m argc, [32mchar[m **argv ) {[44;142H[K[44;142H449,1[9C95%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;1H[34m */[m[44;142H[K[44;142H448,1[9C95%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;1H[34m * Process the arguments.[m[44;142H[K[44;142H447,1[9C95%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;1H[34m/*[m[44;142H[K[44;142H446,1[9C94%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[44;142H[K[44;142H445,0-1[7C94%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[44;142H[K[44;142H444,0-1[7C94%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;1H}[44;142H[K[44;142H443,1[9C94%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;2H writeReg(&nf2, SERIAL_TEST_CTRL_1_REG, [31m0[m);[44;142H[K[44;142H442,1[9C94%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;2H writeReg(&nf2, SERIAL_TEST_CTRL_0_REG, [31m0[m);[44;142H[K[44;142H441,1[9C93%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;2H writeReg(&nf2, SERIAL_TEST_CTRL_REG, [31m0[m);[44;142H[K[44;142H440,1[9C93%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;2H [34m//writeReg(&nf2, SERIAL_TEST_CTRL_REG, SERIAL_TEST_GLBL_CTRL_NONSTOP);[m[44;142H[K[44;142H439,1[9C93%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;2H writeReg(&nf2, SERIAL_TEST_CTRL_REG, SERIAL_TEST_GLBL_CTRL_RESTART);[44;142H[K[44;142H438,1[9C93%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[44;142H[K[44;142H437,0-1[7C92%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;2H writeReg(&nf2, DRAM_TEST_CTRL_REG, DRAM_TEST_CTRL_REPEAT);[44;142H[K[44;142H436,1[9C92%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;2H usleep([31m100000[m);[44;142H[K[44;142H435,1[9C92%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;2H writeReg(&nf2, DRAM_TEST_CTRL_REG, [31m0x0[m);[44;142H[K[44;142H434,1[9C92%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;2H writeReg(&nf2, DRAM_TEST_EN_REG, DRAM_TEST_ENABLE_ENABLE_MASK);[44;142H[K[44;142H433,1[9C92%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;6H SRAM_TEST_ENABLE_SRAM_EN_MASK);[44;142H[K[44;142H432,1[9C91%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;6H SRAM_TEST_ENABLE_TEST_EN_MASK |[44;142H[K[44;142H431,1[9C91%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;2H writeReg(&nf2, SRAM_TEST_EN_REG,[44;142H[K[44;142H430,1[9C91%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[44;142H[K[44;142H429,0-1[7C91%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;2H writeReg(&nf2, SRAM_TEST_RAND_SEED_LO_REG, data2);[44;142H[K[44;142H428,1[9C91%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;2H writeReg(&nf2, SRAM_TEST_RAND_SEED_HI_REG, data1 & [31m0xf[m);[44;142H[K[44;142H427,1[9C90%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;2H data2 = lrand48();[44;142H[K[44;142H426,1[9C90%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;2H data1 = lrand48();[44;142H[K[44;142H425,1[9C90%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;2H [34m// program h/w random test with a different test seed for each iteration[m[44;142H[K[44;142H424,1[9C90%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[44;142H[K[44;142H423,0-1[7C89%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;2H move([31m10[m,[31m0[m);[44;142H[K[44;142H422,1[9C89%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;2H [32munsigned[m [32mint[m data1, data2;[44;142H[K[44;142H421,1[9C89%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[44;142H[K[44;142H420,0-1[7C89%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;2H [32mint[m i;[44;142H[K[44;142H419,1[9C89%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;2H [32munsigned[m [32mint[m val;[44;142H[K[44;142H418,1[9C88%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;1H[32mvoid[m reset_tests([32mvoid[m) {[44;142H[K[44;142H417,1[9C88%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;1H[34m// Reset the status of all tests[m[44;142H[K[44;142H416,1[9C88%[1;1H[?12l[?25h[?25l[44;144H7[2;1H[?12l[?25h[?25l[44;144H8[3;1H[?12l[?25h[?25l[44;144H9[4;1H[?12l[?25h[?25l[44;143H20,0-1[5;1H[?12l[?25h[?25l[44;144H1,1 [6;1H[?12l[?25h[?25l[44;144H2[7;1H[?12l[?25h[?25l[44;144H3,0-1[8;1H[?12l[?25h[?25l[44;144H4,1 [9;1H[?12l[?25h[?25l[44;144H5[10;1H[?12l[?25h[?25l[44;144H6[11;1H[?12l[?25h[?25l[44;144H7[12;1H[?12l[?25h[?25l[44;144H8[13;1H[?12l[?25h[?25l[44;144H9,0-1[14;1H[?12l[?25h[?25l[44;143H30,1 [15;1H[?12l[?25h[?25l[44;144H1[16;1H[?12l[?25h[?25l[44;144H2[17;1H[?12l[?25h[?25l[44;144H3[18;1H[?12l[?25h[?25l[44;144H4[19;1H[?12l[?25h[?25l[44;144H5[20;1H[?12l[?25h[?25l[44;144H6[21;1H[?12l[?25h[?25l[44;144H7,0-1[22;1H[?12l[?25h[?25l[44;144H8,1 [23;1H[?12l[?25h[?25l[44;144H9[24;1H[?12l[?25h[?25l[44;143H40[25;1H[?12l[?25h[?25l[44;144H1[26;1H[?12l[?25h[?25l[44;144H2[27;1H[?12l[?25h[?25l[2;24H[106m{[28;1H}[m[44;144H3[28;1H[?12l[?25h[?25l[2;24H{[28;1H}[44;144H4,0-1[29;1H[?12l[?25h[?25l[44;144H5[30;1H[?12l[?25h[?25l[44;144H6,1 [31;1H[?12l[?25h[?25l[44;144H7[32;1H[?12l[?25h[?25l[44;144H8[33;1H[?12l[?25h[?25l[44;144H9[34;1H[?12l[?25h[?25l[44;143H50,0-1[35;1H[?12l[?25h[?25l[44;144H1,1 [36;1H[?12l[?25h[?25l[44;144H2,0-1[37;1H[?12l[?25h[?25l[44;144H3,1 [38;1H[?12l[?25h[?25l[44;144H4[39;1H[?12l[?25h[?25l[44;144H5,0-1[40;1H[?12l[?25h[?25l[44;144H6,1 [41;1H[?12l[?25h[?25l[44;144H7[42;1H[?12l[?25h[?25l[44;144H8[43;1H[?12l[?25h[?25l[1;43r[43;1H
3877[1;44r[43;6H [38;5;130mswitch[m (c)[44;142H[K[44;142H459,1[9C88%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3878[1;44r[43;9H {[44;142H[K[44;142H460,1-8[7C88%[43;8H[?12l[?25h[?25l[1;43r[43;1H
3879[1;44r[43;9H [38;5;130mcase[m [31m'c'[m:[44;142H[K[44;142H461,1-8[7C89%[43;8H[?12l[?25h[?25l[1;43r[43;1H
3880[1;44r[43;12H continuous = [31m1[m;[44;142H[K[44;142H462,1-8[7C89%[43;8H[?12l[?25h[?25l[1;43r[43;1H
3881[1;44r[43;12H shortrun = [31m0[m;[44;142H[K[44;142H463,1-8[7C89%[43;8H[?12l[?25h[?25l[1;43r[43;1H
3882[1;44r[43;12H [38;5;130mbreak[m;[44;142H[K[44;142H464,1-8[7C89%[43;8H[?12l[?25h[?25l[1;43r[43;1H
3883[1;44r[43;9H [38;5;130mcase[m [31m's'[m:[44;142H[K[44;142H465,1-8[7C89%[43;8H[?12l[?25h[?25l[1;43r[43;1H
3884[1;44r[43;12H shortrun = [31m1[m;[44;142H[K[44;142H466,1-8[7C90%[43;8H[?12l[?25h[?25l[1;43r[43;1H
3885[1;44r[43;12H continuous = [31m0[m;[44;142H[K[44;142H467,1-8[7C90%[43;8H[?12l[?25h[?25l[1;43r[43;1H
3886[1;44r[43;12H [38;5;130mbreak[m;[44;142H[K[44;142H468,1-8[7C90%[43;8H[?12l[?25h[?25l[1;43r[43;1H
3887[1;44r[43;1H[34m// case 'v':[m[44;142H[K[44;142H469,1[9C90%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3888[1;44r[43;1H[34m// verbose = 1;[m[44;142H[K[44;142H470,1[9C91%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3889[1;44r[43;1H[34m// break;[m[44;142H[K[44;142H471,1[9C91%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3890[1;44r[43;1H[34m// case 'l': /* log file */[m[44;142H[K[44;142H472,1[9C91%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3891[1;44r[43;1H[34m// log_file_name = optarg;[m[44;142H[K[44;142H473,1[9C91%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3892[1;44r[43;1H[34m// break;[m[44;142H[K[44;142H474,1[9C91%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3893[1;44r[43;9H [38;5;130mcase[m [31m'i'[m: [34m/* interface name */[m[44;142H[K[44;142H475,1-8[7C92%[43;8H[?12l[?25h[?25l[1;43r[43;1H
3894[1;44r[43;12H nf2.device_name = optarg;[44;142H[K[44;142H476,1-8[7C92%[43;8H[?12l[?25h[?25l[1;43r[43;1H
3895[1;44r[43;12H [38;5;130mbreak[m;[44;142H[K[44;142H477,1-8[7C92%[43;8H[?12l[?25h[?25l[1;43r[43;1H
3896[1;44r[43;3H [38;5;130mcase[m [31m'n'[m: [34m/* without SATA test */[m[44;142H[K[44;142H478,1[9C92%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3897[1;44r[43;6H no_sata_flg = [31m1[m;[44;142H[K[44;142H479,1[9C92%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3898[1;44r[43;6H [38;5;130mbreak[m;[44;142H[K[44;142H480,1[9C93%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3899[1;44r[43;9H [38;5;130mcase[m [31m'?'[m:[44;142H[K[44;142H481,1-8[7C93%[43;8H[?12l[?25h[?25l[1;43r[43;1H
3900[1;44r[43;12H [38;5;130mif[m (isprint (optopt))[44;142H[K[44;142H482,1-8[7C93%[43;8H[?12l[?25h[?25l[1;43r[43;1H
3901[1;44r[43;15H fprintf ([31mstderr[m, [31m"Unknown option `-[m[35m%c[m[31m'.[m[35m\n[m[31m"[m, optopt);[44;142H[K[44;142H483,1[9C93%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3902[1;44r[43;12H [38;5;130melse[m[44;142H[K[44;142H484,1-8[7C94%[43;8H[?12l[?25h[?25l[1;43r[43;1H
3903[1;44r[43;15H fprintf ([31mstderr[m,[44;142H[K[44;142H485,1[9C94%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3904[1;44r[43;24H [31m"Unknown option character `[m[35m\\[m[31mx[m[35m%x[m[31m'.[m[35m\n[m[31m"[m,[44;142H[K[44;142H486,1[9C94%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3905[1;44r[43;24H optopt);[44;142H[K[44;142H487,1[9C94%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3906[1;44r[43;9H [38;5;130mdefault[m:[44;142H[K[44;142H488,1-8[7C94%[43;8H[?12l[?25h[?25l[1;43r[43;1H
3907[1;44r[43;12H usage(argv[[31m0[m]);[44;142H[K[44;142H489,1-8[7C95%[43;8H[?12l[?25h[?25l[1;43r[43;1H
3908[1;44r[43;12H exit([31m1[m);[44;142H[K[44;142H490,1-8[7C95%[43;8H[?12l[?25h[?25l[1;43r[43;1H
3909[1;44r[43;9H }[44;142H[K[44;142H491,1-8[7C95%[43;8H[?12l[?25h[?25l[1;43r[43;1H
3910[1;44r[44;142H[K[44;142H492,0-1[7C95%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3911[1;44r[43;1H[34m// if (verbose) {[m[44;142H[K[44;142H493,1[9C95%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3912[1;44r[43;1H[34m// printf ("logfile = %s. bin file = %s\n", log_file_name, bin_file_name);[m[44;142H[K[44;142H494,1[9C96%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3913[1;44r[43;1H[34m// }[m[44;142H[K[44;142H495,1[9C96%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3914[1;44r[44;142H[K[44;142H496,0-1[7C96%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3915[1;44r[43;1H}[44;142H[K[44;142H497,1[9C96%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3916[1;44r[44;142H[K[44;142H498,0-1[7C97%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3917[1;44r[43;1H[34m/*[m[44;142H[K[44;142H499,1[9C97%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3918[1;44r[43;1H[34m * Describe usage of this program.[m[44;142H[K[44;142H500,1[9C97%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3919[1;44r[43;1H[34m */[m[44;142H[K[44;142H501,1[9C97%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3920[1;44r[43;1H[32mvoid[m usage ([32mchar[m *prog) {[44;142H[K[44;142H502,1[9C97%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3921[1;44r[43;3H printf([31m"Usage: [m[35m%s[m[31m <options> [filename.bin | filename.bit][m[35m\n[m[31m"[m, prog);[44;142H[K[44;142H503,1[9C98%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3922[1;44r[43;3H printf([31m"[m[35m\n[m[31mOptions: -l <logfile> (default is stdout).[m[35m\n[m[31m"[m);[44;142H[K[44;142H504,1[9C98%[43;1H[?12l[?25h[?25l[44;144H3[42;1H[?12l[?25h[?25l[44;144H2[41;1H[?12l[?25h[?25l[44;144H1[40;1H[?12l[?25h[?25l[44;144H0[39;1H[?12l[?25h[?25l[44;142H499[38;1H[?12l[?25h[?25l[44;144H8,0-1[37;1H[?12l[?25h[?25l[44;144H7,1 [36;1H[?12l[?25h[?25l[44;144H6,0-1[35;1H[?12l[?25h[?25l[44;144H5,1 [34;1H[?12l[?25h[?25l[44;144H4[33;1H[?12l[?25h[?25l[44;144H3[32;1H[?12l[?25h[?25l[44;144H2,0-1[31;1H[?12l[?25h[?25l[44;144H1,1-8[30;8H[?12l[?25h[?25l[44;144H0[29;8H[?12l[?25h[?25l[44;143H89[28;8H[?12l[?25h[?25l[44;144H8[27;8H[?12l[?25h[?25l[44;144H7,1 [26;1H[?12l[?25h[?25l[44;144H6[25;1H[?12l[?25h[?25l[44;144H5[24;1H[?12l[?25h[?25l[44;144H4,1-8[23;8H[?12l[?25h[?25l[44;144H3,1 [22;1H[?12l[?25h[?25l[44;144H2,1-8[21;8H[?12l[?25h[?25l[44;144H1[20;8H[?12l[?25h[?25l[44;144H0,1 [19;1H[?12l[?25h[?25l[44;143H79[18;1H[?12l[?25h[?25l[44;144H8[17;1H[?12l[?25h[?25l[44;144H7,1-8[16;8H[?12l[?25h[?25l[44;144H6[15;8H[?12l[?25h[?25l[44;144H5[14;8H[?12l[?25h[?25l[44;144H4,1 [13;1H[?12l[?25h[?25l[44;144H3[12;1H[?12l[?25h[?25l[44;144H2[11;1H[?12l[?25h[?25l[44;144H1[10;1H[?12l[?25h[?25l[44;144H0[9;1H[?12l[?25h[?25l[44;143H69[8;1H[?12l[?25h[?25l[44;144H8,1-8[7;8H[?12l[?25h[?25l[44;144H7[6;8H[?12l[?25h[?25l[44;144H6[5;8H[?12l[?25h[?25l[44;144H5[4;8H[?12l[?25h[?25l[44;144H4[3;8H[?12l[?25h[?25l[44;144H3[2;8H[?12l[?25h[?25l[44;144H2[1;8H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;9H [38;5;130mcase[m [31m'c'[m:[44;142H[K[44;142H461,1-8[7C98%[1;8H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;9H {[44;142H[K[44;142H460,1-8[7C97%[1;8H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;6H [38;5;130mswitch[m (c)[44;142H[K[44;142H459,1[9C97%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;3H [38;5;130mwhile[m ((c = getopt (argc, argv, [31m"csi:n"[m)) != -[31m1[m)[44;142H[K[44;142H458,1[9C97%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;3H opterr = [31m0[m;[44;142H[K[44;142H457,1[9C97%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;3H [34m/* don't want getopt to moan - I can do that just fine thanks! */[m[44;142H[K[44;142H456,1[9C97%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[44;142H[K[44;142H455,0-1[7C96%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;3H verbose = [31m0[m;[44;142H[K[44;142H454,1[9C96%[1;1H[?12l[?25h[?25l[44;144H5,0-1[2;1H[?12l[?25h[?25l[44;144H6,1 [3;1H[?12l[?25h[?25l[44;144H7[4;1H[?12l[?25h[?25l[44;144H8[5;1H[?12l[?25h[?25l[44;144H9[6;1H[?12l[?25h[?25l[44;143H60,1-8[7;8H[?12l[?25h[?25l[44;144H1[8;8H[?12l[?25h[?25l[44;144H2[9;8H[?12l[?25h[?25l[44;144H3[10;8H[?12l[?25h[?25l[44;144H4[11;8H[?12l[?25h[?25l[44;144H5[12;8H[?12l[?25h[?25l[44;144H6[13;8H[?12l[?25h[?25l[44;144H7[14;8H[?12l[?25h[?25l[44;144H8[15;8H[?12l[?25h[?25l[44;144H9,1 [16;1H[?12l[?25h[?25l[44;143H70[17;1H[?12l[?25h[?25l[44;144H1[18;1H[?12l[?25h[?25l[44;144H2[19;1H[?12l[?25h[?25l[44;144H3[20;1H[?12l[?25h[?25l[44;144H4[21;1H[?12l[?25h[?25l[44;144H5,1-8[22;8H[?12l[?25h[?25l[44;144H6[23;8H[?12l[?25h[?25l[44;144H7[24;8H[?12l[?25h[?25l[44;144H8,1 [25;1H[?12l[?25h[?25l[44;144H9[26;1H[?12l[?25h[?25l[44;143H80[27;1H[?12l[?25h[?25l[44;144H1,1-8[28;8H[?12l[?25h[?25l[44;144H2[29;8H[?12l[?25h[?25l[44;144H3,1 [30;1H[?12l[?25h[?25l[44;144H4,1-8[31;8H[?12l[?25h[?25l[44;144H5,1 [32;1H[?12l[?25h[?25l[44;144H6[33;1H[?12l[?25h[?25l[44;144H7[34;1H[?12l[?25h[?25l[44;144H8,1-8[35;8H[?12l[?25h[?25l[44;144H7,1 [34;1H[?12l[?25h[?25l[44;144H6[33;1H[?12l[?25h[?25l[44;144H5[32;1H[?12l[?25h[?25l[44;144H4,1-8[31;8H[?12l[?25h[?25l[44;144H3,1 [30;1H[?12l[?25h[?25l[44;144H2,1-8[29;8H[?12l[?25h[?25l[44;144H1[28;8H[?12l[?25h[?25l[44;144H0,1 [27;1H[?12l[?25h[?25l[44;143H79[26;1H[?12l[?25h[?25l[44;143H80[27;1H[?12l[?25h[?25l[44;144H1,1-8[28;8H[?12l[?25h[?25l[44;144H2[29;8H[?12l[?25h[?25l[44;144H3,1 [30;1H[?12l[?25h[?25l[44;144H4,1-8[31;8H[?12l[?25h[?25l[44;144H5,1 [32;1H[?12l[?25h[?25l[44;144H6[33;1H[?12l[?25h[?25l[44;144H7[34;1H[?12l[?25h[?25l[44;144H8,1-8[35;8H[?12l[?25h[?25l[44;144H9[36;8H[?12l[?25h[?25l[44;143H90[37;8H[?12l[?25h[?25l[44;144H1[38;8H[?12l[?25h[?25l[44;144H2,0-1[39;1H[?12l[?25h[?25l[44;144H3,1 [40;1H[?12l[?25h[?25l[44;144H4[41;1H[?12l[?25h[?25l[44;144H5[42;1H[?12l[?25h[?25l[44;144H6,0-1[43;1H[?12l[?25h[?25l[1;43r[43;1H
3923[1;44r[43;1H}[44;142H[K[44;142H497,1[9C96%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3924[1;44r[44;142H[K[44;142H498,0-1[7C97%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3925[1;44r[43;1H[34m/*[m[44;142H[K[44;142H499,1[9C97%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3926[1;44r[43;1H[34m * Describe usage of this program.[m[44;142H[K[44;142H500,1[9C97%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3927[1;44r[43;1H[34m */[m[44;142H[K[44;142H501,1[9C97%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3928[1;44r[43;1H[32mvoid[m usage ([32mchar[m *prog) {[44;142H[K[44;142H502,1[9C97%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3929[1;44r[43;3H printf([31m"Usage: [m[35m%s[m[31m <options> [filename.bin | filename.bit][m[35m\n[m[31m"[m, prog);[44;142H[K[44;142H503,1[9C98%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3930[1;44r[43;3H printf([31m"[m[35m\n[m[31mOptions: -l <logfile> (default is stdout).[m[35m\n[m[31m"[m);[44;142H[K[44;142H504,1[9C98%[43;1H[?12l[?25h[?25l[1;43r[43;1H
3931[1;44r[43;3H printf([31m" -i <iface> : interface name.[m[35m\n[m[31m"[m);[44;142H[K[44;142H505,1[9C98%[43;1H[?12l[?25h[?25l[44;144H4[42;1H[?12l[?25h[?25l[44;144H3[41;1H[?12l[?25h[?25l[44;144H2[40;1H[?12l[?25h[?25l[44;144H1[39;1H[?12l[?25h[?25l[44;144H0[38;1H[?12l[?25h[?25l[44;142H499[37;1H[?12l[?25h[?25l[44;144H8,0-1[36;1H[?12l[?25h[?25l[44;144H7,1 [35;1H[?12l[?25h[?25l[44;144H6,0-1[34;1H[?12l[?25h[?25l[44;144H5,1 [33;1H[?12l[?25h[?25l[44;144H4[32;1H[?12l[?25h[?25l[44;144H3[31;1H[?12l[?25h[?25l[44;144H2,0-1[30;1H[?12l[?25h[?25l[44;144H1,1-8[29;8H[?12l[?25h[?25l[44;144H0[28;8H[?12l[?25h[?25l[44;143H89[27;8H[?12l[?25h[?25l[44;144H8[26;8H[?12l[?25h[?25l[44;144H7,1 [25;1H[?12l[?25h[?25l[44;144H6[24;1H[?12l[?25h[?25l[44;144H5[23;1H[?12l[?25h[?25l[44;144H4,1-8[22;8H[?12l[?25h[?25l[44;144H3,1 [21;1H[?12l[?25h[?25l[44;144H2,1-8[20;8H[?12l[?25h[?25l[44;144H1[19;8H[?12l[?25h[?25l[44;144H0,1 [18;1H[?12l[?25h[?25l[44;143H79[17;1H[?12l[?25h[?25l[44;144H8[16;1H[?12l[?25h[?25l[44;144H7,1-8[15;8H[?12l[?25h[?25l[44;144H6[14;8H[?12l[?25h[?25l[44;144H5[13;8H[?12l[?25h[?25l[44;144H4,1 [12;1H[?12l[?25h[?25l[44;144H3[11;1H[?12l[?25h[?25l[44;144H2[10;1H[?12l[?25h[?25l[44;144H1[9;1H[?12l[?25h[?25l[44;144H0[8;1H[?12l[?25h[?25l[44;143H69[7;1H[?12l[?25h[?25l[44;144H8,1-8[6;8H[?12l[?25h[?25l[44;144H7[5;8H[?12l[?25h[?25l[44;144H6[4;8H[?12l[?25h[?25l[44;144H5[3;8H[?12l[?25h[?25l[44;144H4[2;8H[?12l[?25h[?25l[44;144H3[1;8H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;12H continuous = [31m1[m;[44;142H[K[44;142H462,1-8[7C98%[1;8H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;9H [38;5;130mcase[m [31m'c'[m:[44;142H[K[44;142H461,1-8[7C98%[1;8H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;9H {[44;142H[K[44;142H460,1-8[7C97%[1;8H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;6H [38;5;130mswitch[m (c)[44;142H[K[44;142H459,1[9C97%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;3H [38;5;130mwhile[m ((c = getopt (argc, argv, [31m"csi:n"[m)) != -[31m1[m)[44;142H[K[44;142H458,1[9C97%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;3H opterr = [31m0[m;[44;142H[K[44;142H457,1[9C97%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;3H [34m/* don't want getopt to moan - I can do that just fine thanks! */[m[44;142H[K[44;142H456,1[9C97%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[44;142H[K[44;142H455,0-1[7C96%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;3H verbose = [31m0[m;[44;142H[K[44;142H454,1[9C96%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;3H [34m/* set defaults */[m[44;142H[K[44;142H453,1[9C96%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[44;142H[K[44;142H452,0-1[7C96%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;3H [32mchar[m c;[44;142H[K[44;142H451,1[9C95%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[44;142H[K[44;142H450,0-1[7C95%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;1H[32mvoid[m processArgs ([32mint[m argc, [32mchar[m **argv ) {[44;142H[K[44;142H449,1[9C95%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;1H[34m */[m[44;142H[K[44;142H448,1[9C95%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;1H[34m * Process the arguments.[m[44;142H[K[44;142H447,1[9C95%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[1;1H[34m/*[m[44;142H[K[44;142H446,1[9C94%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[44;142H[K[44;142H445,0-1[7C94%[1;1H[?12l[?25h[?25l[1;43r[1;1H[L[1;44r[44;142H[K[44;142H444,0-1[7C94%[1;1H[?12l[?25h[?25l[44;144H5[2;1H[?12l[?25h[?25l[44;144H6,1 [3;1H[?12l[?25h[?25l[44;144H7[4;1H[?12l[?25h[?25l[44;144H6[3;1H[?12l[?25h[?25l[44;144H7[4;1H[?12l[?25h[?25l[44;144H8[5;1H[?12l[?25h[?25l[44;144H9[6;1H[?12l[?25h[?25l[44;146H6[6;6H[?12l[?25h[?25l[44;1H/\<processArgs\>[44;142H[K[44;1H[31msearch hit BOTTOM, continuing at TOP[27m[m[H[2J[1;1H[32mint[m verbose = [31m0[m;
3932[32mint[m continuous = [31m0[m;
3933[32mint[m shortrun = [31m1[m;
3934[32mint[m no_sata_flg = [31m0[m;
3935
3936[32mFILE[m * log_file;
3937WINDOW *w;
3938
3939[34m/* Function declarations */[m
3940[32mvoid[m mainContinuous([32mvoid[m);
3941[32mvoid[m mainOneShot([32mvoid[m);
3942[34m//void init_work(void);[m
3943[32mvoid[m reset_tests([32mvoid[m);
3944[34m//void show_stats (int loop_iter);
3945//bool show_status_serial_test(void);
3946//bool show_status_sram_test(void);
3947//bool show_status_dram_test(void);
3948//bool show_status_mii_test(void);
3949//bool show_status_phy_test(void);
3950//bool show_status_reg_test(void);
3951//void sram_sw_test(SW_TEST_EFFORT_LEVEL );[m
3952[32mvoid[m processArgs ([32mint[m, [32mchar[m **);
3953[32mvoid[m usage ([32mchar[m*);
3954[32mvoid[m run_continuous([32mvoid[m);
3955[32mvoid[m reset_continuous([32mvoid[m);
3956[32mvoid[m stop_continuous([32mvoid[m);
3957[32mvoid[m sigint_handler([32mint[m signum);
3958[32mvoid[m reset_board([32mvoid[m);
3959[32mvoid[m title_bar([32mvoid[m);
3960[32mvoid[m clear_line([32mvoid[m);
3961
3962[35m#define NUM_TESTS [m[31m8[m
3963[34m/* Selftest module interface */[m
3964[32mstruct[m test_module modules[NUM_TESTS] = {
3965 {
3966 [31m"Clock select"[m,
3967 clkResetContinuous,
3968 clkShowStatusContinuous,
3969 clkStopContinuous,
3970 clkGetResult,
3971 },
3972 {
3973 [31m"Register interface"[m,[44;142H75,6[10C11%
3974[31msearch hit BOTTOM, continuing at TOP[m[44;142H[K[44;142H75,6[10C11%[22;6H[?12l[?25h[?25l[44;1H/\<processArgs\>[44;17H[K[44;1H[27m[m[H[2J[1;4H serialGetResult,
3975 },
3976 {
3977 [31m"DMA interface"[m,
3978 dmaResetContinuous,
3979 dmaShowStatusContinuous,
3980 dmaStopContinuous,
3981 dmaGetResult,
3982 },
3983};
3984
3985
3986[34m/*
3987 * Main function
3988 */[m
3989[32mint[m main([32mint[m argc, [32mchar[m *argv[])
3990{
3991 [34m// Set the default device[m
3992 nf2.device_name = DEFAULT_IFACE;
3993
3994 [34m// Process the command line arguments[m
3995 processArgs(argc, argv);
3996
3997 [34m// Check that the interface is valid and open it if possible[m
3998 [38;5;130mif[m (check_iface(&nf2))
3999 {
4000 exit([31m1[m);
4001 }
4002 [38;5;130mif[m (openDescriptor(&nf2))
4003 {
4004 exit([31m1[m);
4005 }
4006
4007 [34m// Verify that the correct device is downloaded[m
4008 [38;5;130mif[m (!checkVirtexBitfile(&nf2, DEVICE_PROJ_DIR,[36;24H DEVICE_MAJOR, DEVICE_MINOR, VERSION_ANY,[37;24H DEVICE_MAJOR, DEVICE_MINOR, VERSION_ANY)) {
4009 fprintf([31mstderr[m, [31m"[m[35m%s\n[m[31m"[m, getVirtexBitfileErr());
4010 exit([31m1[m);
4011 }
4012 [38;5;130melse[m {
4013 printf(getDeviceInfoStr(&nf2));
4014 }[44;142H156,3[9C28%[22;3H[?12l[?25h[?25l[44;144H7,0-1[23;1H[?12l[?25h[?25l[44;144H8,3 [24;3H[?12l[?25h[?25l[44;144H9[25;3H[?12l[?25h[?25l
4015 [106m{
4016
4017[m [106m}[m[44;143H60[26;3H[?12l[?25h[?25l{
4018
4019 }[44;144H1[27;3H[?12l[?25h[?25l[26;3H[106m{
4020
4021[m [106m}[m[44;144H2[28;3H[?12l[?25h[?25l[26;3H{
4022
4023 }[44;144H3[29;3H[?12l[?25h[?25l
4024 [106m{
4025
4026[m [106m}[m[44;144H4[30;3H[?12l[?25h[?25l{
4027
4028 }[44;144H5[31;3H[?12l[?25h[?25l[30;3H[106m{
4029
4030[m [106m}[m[44;144H6[32;3H[?12l[?25h[?25l[30;3H{
4031
4032 }[44;144H7,0-1[33;1H[?12l[?25h[?25l[44;144H8,3 [34;3H[?12l[?25h[?25l[44;144H9[35;3H[?12l[?25h[?25l[44;143H70,1-8[36;8H[?12l[?25h[?25l[44;144H1[37;8H[?12l[?25h[?25l[44;144H2,3 [38;3H[?12l[?25h[?25l[44;144H3[39;3H[?12l[?25h[?25l[37;67H[106m{[40;3H}[m[44;144H4[40;3H[?12l[?25h[?25l[37;67H{[40;3H}[44;144H5[41;3H[?12l[?25h[?25l[44;144H6[42;3H[?12l[?25h[?25l[41;8H[106m{
4033
4034[m [106m}[m[44;144H7[43;3H[?12l[?25h[?25l[1;43r[43;1H
4035[1;44r[40;8H{
4036
4037 }[44;142H[K[44;142H178,0-1[7C28%[43;1H[?12l[?25h[?25l[1;43r[43;1H
4038[1;44r[43;2H [34m// Add a signal handler[m[44;142H[K[44;142H179,3[9C28%[43;3H[?12l[?25h[?25l[1;43r[43;1H
4039[1;44r[43;2H signal([31mSIGINT[m, sigint_handler);[44;142H[K[44;142H180,3[9C29%[43;3H[?12l[?25h[?25l[1;43r[43;1H
4040[1;44r[44;142H[K[44;142H181,0-1[7C29%[43;1H[?12l[?25h[?25l[1;43r[43;1H
4041[1;44r[43;2H [34m// Measure the clock rates[m[44;142H[K[44;142H182,3[9C29%[43;3H[?12l[?25h[?25l[1;43r[43;1H
4042[1;44r[43;2H measureClocks();[44;142H[K[44;142H183,3[9C29%[43;3H[?12l[?25h[?25l[1;43r[43;1H
4043[1;44r[44;142H[K[44;142H184,0-1[7C30%[43;1H[?12l[?25h[?25l[1;43r[43;1H
4044[1;44r[43;2H [34m// Run the appropriate test[m[44;142H[K[44;142H185,3[9C30%[43;3H[?12l[?25h[?25l[1;43r[43;1H
4045[1;44r[43;2H [38;5;130mif[m (continuous) {[44;142H[K[44;142H186,3[9C30%[43;3H[?12l[?25h[?25l[1;43r[43;1H
4046[1;44r[43;4H mainContinuous();[44;142H[K[44;142H187,3[9C30%[43;3H[?12l[?25h[?25l[1;43r[43;1H
4047[1;44r[41;19H[106m{[m
4048
4049 [106m}[m[44;142H[K[44;142H188,3[9C30%[43;3H[?12l[?25h[?25l[1;43r[43;1H
4050[1;44r[40;19H{
4051
4052 }
4053 [38;5;130melse[m [38;5;130mif[m (shortrun) {[44;142H[K[44;142H189,3[9C31%[43;3H[?12l[?25h[?25l[1;43r[43;1H
4054[1;44r[43;4H mainOneShot();[44;142H[K[44;142H190,3[9C31%[43;3H[?12l[?25h[?25l[1;43r[43;1H
4055[1;44r[41;22H[106m{[m
4056
4057 [106m}[m[44;142H[K[44;142H191,3[9C31%[43;3H[?12l[?25h[?25l[1;43r[43;1H
4058[1;44r[40;22H{
4059
4060 }[44;142H[K[44;142H192,0-1[7C31%[43;1H[?12l[?25h[?25l[1;43r[43;1H
4061[1;44r[43;2H [34m// Close the network descriptor[m[44;142H[K[44;142H193,3[9C31%[43;3H[?12l[?25h[?25l[1;43r[43;1H
4062[1;44r[43;2H closeDescriptor(&nf2);[44;142H[K[44;142H194,3[9C32%[43;3H[?12l[?25h[?25l[1;43r[43;1H
4063[1;44r[44;142H[K[44;142H195,0-1[7C32%[43;1H[?12l[?25h[?25l[1;43r[43;1H
4064[1;44r[43;2H [38;5;130mreturn[m [31m0[m;[44;142H[K[44;142H196,3[9C32%[43;3H[?12l[?25h[?25l[1;43r[43;1H
4065[1;44r[43;1H}[44;142H[K[44;142H197,1[9C32%[43;1H[?12l[?25h[?25l[1;43r[43;1H
4066[1;44r[44;142H[K[44;142H198,0-1[7C33%[43;1H[?12l[?25h[?25l[1;43r[43;1H
4067[1;44r[43;1H[34m/*[m[44;142H[K[44;142H199,2[9C33%[43;2H[?12l[?25h[?25l[44;144H8,0-1[42;1H[?12l[?25h[?25l[44;144H7,1 [41;1H[?12l[?25h[?25l[44;144H6,3[40;3H[?12l[?25h[?25l[44;144H5,0-1[39;1H[?12l[?25h[?25l[44;144H4,3 [38;3H[?12l[?25h[?25l[44;144H3[37;3H[?12l[?25h[?25l[44;144H2,0-1[36;1H[?12l[?25h[?25l[33;22H[106m{
4068
4069[m [106m}[m[44;144H1,3 [35;3H[?12l[?25h[?25l[33;22H{
4070
4071 }[44;144H0[34;3H[?12l[?25h[?25l[44;143H89[33;3H[?12l[?25h[?25l[30;19H[106m{
4072
4073[m [106m}[m[44;144H8[32;3H[?12l[?25h[?25l[30;19H{
4074
4075 }[44;144H7[31;3H[?12l[?25h[?25l[44;144H6[30;3H[?12l[?25h[?25l[44;144H7[31;3H[?12l[?25h[?25l[30;19H[106m{
4076
4077[m [106m}[m[44;144H8[32;3H[?12l[?25h[?25l[30;19H{
4078
4079 }[44;144H9[33;3H[?12l[?25h[?25l[44;143H90[34;3H[?12l[?25h[?25l[33;22H[106m{
4080
4081[m [106m}[m[44;144H1[35;3H[?12l[?25h[?25l[33;22H{
4082
4083 }[44;144H0[34;3H[?12l[?25h[?25l[44;146H4[34;4H[?12l[?25h[?25l[44;146H5[34;5H[?12l[?25h[?25l[44;143H89[33;5H[?12l[?25h[?25l[44;146H8[33;8H[?12l[?25h[?25l[3C[106m([8C)[m[44;146H11[33;11H[?12l[?25h[?25l([8C)[44;147H2[33;12H[?12l[?25h[?25l[44;1H/\<shortrun\>[44;142H[K[44;1H[27m[m[H[2J[1;2H writeReg(&nf2, SERIAL_TEST_CTRL_1_REG, [31m0[m);
4084}
4085
4086
4087[34m/*
4088 * Process the arguments.
4089 */[m
4090[32mvoid[m processArgs ([32mint[m argc, [32mchar[m **argv ) {
4091
4092 [32mchar[m c;
4093
4094 [34m/* set defaults */[m
4095 verbose = [31m0[m;
4096
4097 [34m/* don't want getopt to moan - I can do that just fine thanks! */[m
4098 opterr = [31m0[m;
4099 [38;5;130mwhile[m ((c = getopt (argc, argv, [31m"csi:n"[m)) != -[31m1[m)[18;6H [38;5;130mswitch[m (c)[19;9H {[20;9H [38;5;130mcase[m [31m'c'[m:[21;12H continuous = [31m1[m;[22;12H shortrun = [31m0[m;[23;12H [38;5;130mbreak[m;[24;9H [38;5;130mcase[m [31m's'[m:[25;12H shortrun = [31m1[m;[26;12H continuous = [31m0[m;[27;12H [38;5;130mbreak[m;
4100[34m// case 'v':
4101// verbose = 1;
4102// break;
4103// case 'l': /* log file */
4104// log_file_name = optarg;
4105// break;[m[34;9H [38;5;130mcase[m [31m'i'[m: [34m/* interface name */[m[35;12H nf2.device_name = optarg;[36;12H [38;5;130mbreak[m;
4106 [38;5;130mcase[m [31m'n'[m: [34m/* without SATA test */[m[38;6H no_sata_flg = [31m1[m;[39;6H [38;5;130mbreak[m;[40;9H [38;5;130mcase[m [31m'?'[m:[41;12H [38;5;130mif[m (isprint (optopt))[42;15H fprintf ([31mstderr[m, [31m"Unknown option `-[m[35m%c[m[31m'.[m[35m\n[m[31m"[m, optopt);[43;12H [38;5;130melse[m[44;142H463,6-13 94%[22;13H[?12l[?25h[?25l[44;144H4[23;13H[?12l[?25h[?25l[44;144H5[24;13H[?12l[?25h[?25l[44;144H6[25;13H[?12l[?25h[?25l[44;144H7[26;13H[?12l[?25h[?25l[44;144H8[27;13H[?12l[?25h[?25l[44;144H9,8[28;13H[?12l[?25h[?25l[44;143H70[29;13H[?12l[?25h[?25l[44;144H1[30;13H[?12l[?25h[?25l[44;144H2[31;13H[?12l[?25h[?25l[44;144H3[32;13H[?12l[?25h[?25l[44;144H4[33;13H[?12l[?25h[?25l[44;144H5,6[34;13H[?12l[?25h[?25l[44;144H6[35;13H[?12l[?25h[?25l[44;144H7[36;13H[?12l[?25h[?25l[44;144H8,13 [37;13H[?12l[?25h[?25l[44;144H9[38;13H[?12l[?25h[?25l[44;143H80,12[39;12H[?12l[?25h[?25l[44;144H1,6-13[40;13H[?12l[?25h[?25l[44;144H2[41;13H[?12l[?25h[?25l[44;144H1[40;13H[?12l[?25h[?25l[44;144H0,12 [39;12H[?12l[?25h[?25l[44;143H79,13[38;13H[?12l[?25h[?25l[44;144H8[37;13H[?12l[?25h[?25l[44;144H7,6-13[36;13H[?12l[?25h[?25l[44;144H6[35;13H[?12l[?25h[?25l[44;144H5[34;13H[?12l[?25h[?25l[44;144H4,8[33;13H[?12l[?25h[?25l[44;144H3[32;13H[?12l[?25h[?25l[44;144H2[31;13H[?12l[?25h[?25l[44;144H1[30;13H[?12l[?25h[?25l[44;144H0[29;13H[?12l[?25h[?25l[44;143H69[28;13H[?12l[?25h[?25l[44;144H8,6[27;13H[?12l[?25h[?25l[44;144H7[26;13H[?12l[?25h[?25l[44;144H6[25;13H[?12l[?25h[?25l[44;144H5[24;13H[?12l[?25h[?25l[44;144H4[23;13H[?12l[?25h[?25l[44;144H3[22;13H[?12l[?25h[?25l[44;144H2[21;13H[?12l[?25h[?25l[44;1H/\<shortrun\>[44;142H[K[44;1H[141C463,6-13 94%[22;13H[?12l[?25h[?25l[44;142H[K[44;1H[141C466,6-13 94%[25;13H[?12l[?25h[?25l[44;142H[K[44;1H[31msearch hit BOTTOM, continuing at TOP[27m[m[H[2J[1;1H[35m#include [m[31m"selftest_sram.h"[m
4107[35m#include [m[31m"selftest_serial.h"[m
4108[35m#include [m[31m"selftest_phy.h"[m
4109[35m#include [m[31m"selftest_mdio.h"[m
4110[35m#include [m[31m"selftest_reg.h"[m
4111[35m#include [m[31m"selftest_clk.h"[m
4112[35m#include [m[31m"selftest_dma.h"[m
4113
4114[35m#define PATHLEN [m[31m80[m
4115
4116[35m#define DEFAULT_IFACE [m[31m"nf2c0"[m
4117[35m#define SELFTEST_VERSION [m[31m"1.00 alpha"[m
4118
4119[35m#define ONE_SHOT_ITER [m[31m5[m
4120
4121[32mtypedef[m [32menum[m {LOW = [31m0[m, HIGH = [31m1[m} SW_TEST_EFFORT_LEVEL;
4122
4123[34m/* Global vars */[m
4124[32mstruct[m nf2device nf2;
4125[32mint[m verbose = [31m0[m;
4126[32mint[m continuous = [31m0[m;
4127[32mint[m shortrun = [31m1[m;
4128[32mint[m no_sata_flg = [31m0[m;
4129
4130[32mFILE[m * log_file;
4131WINDOW *w;
4132
4133[34m/* Function declarations */[m
4134[32mvoid[m mainContinuous([32mvoid[m);
4135[32mvoid[m mainOneShot([32mvoid[m);
4136[34m//void init_work(void);[m
4137[32mvoid[m reset_tests([32mvoid[m);
4138[34m//void show_stats (int loop_iter);
4139//bool show_status_serial_test(void);
4140//bool show_status_sram_test(void);
4141//bool show_status_dram_test(void);
4142//bool show_status_mii_test(void);
4143//bool show_status_phy_test(void);
4144//bool show_status_reg_test(void);
4145//void sram_sw_test(SW_TEST_EFFORT_LEVEL );[m
4146[32mvoid[m processArgs ([32mint[m, [32mchar[m **);
4147[32mvoid[m usage ([32mchar[m*);
4148[32mvoid[m run_continuous([32mvoid[m);[44;142H56,5[11C7%
4149[31msearch hit BOTTOM, continuing at TOP[m[44;142H[K[44;142H56,5[11C7%[22;5H[?12l[?25h[?25l[44;1H/\<shortrun\>[44;14H[K[44;1H[27m[m[H[2J[1;2H [34m// Verify that the correct device is downloaded[m
4150 [38;5;130mif[m (!checkVirtexBitfile(&nf2, DEVICE_PROJ_DIR,[3;24H DEVICE_MAJOR, DEVICE_MINOR, VERSION_ANY,[4;24H DEVICE_MAJOR, DEVICE_MINOR, VERSION_ANY)) {
4151 fprintf([31mstderr[m, [31m"[m[35m%s\n[m[31m"[m, getVirtexBitfileErr());
4152 exit([31m1[m);
4153 }
4154 [38;5;130melse[m {
4155 printf(getDeviceInfoStr(&nf2));
4156 }
4157
4158 [34m// Add a signal handler[m
4159 signal([31mSIGINT[m, sigint_handler);
4160
4161 [34m// Measure the clock rates[m
4162 measureClocks();
4163
4164 [34m// Run the appropriate test[m
4165 [38;5;130mif[m (continuous) {
4166 mainContinuous();
4167 }
4168 [38;5;130melse[m [38;5;130mif[m (shortrun) {
4169 mainOneShot();
4170 }
4171
4172 [34m// Close the network descriptor[m
4173 closeDescriptor(&nf2);
4174
4175 [38;5;130mreturn[m [31m0[m;
4176}
4177
4178[34m/*
4179 * "Main" function for continuous mode
4180 */[m
4181[32mvoid[m mainContinuous([32mvoid[m)
4182{
4183 [34m// Set up curses[m
4184 w = initscr();
4185 cbreak();
4186 halfdelay([31m1[m);
4187 noecho();
4188
4189 [34m//init_work(); //initialization. one time effort[m[44;142H189,12[8C35%[22;12H[?12l[?25h[?25l[44;143H90[23;12H[?12l[?25h[?25l[44;146H5 [23;5H[?12l[?25h[?25l[44;1H/\<mainOneShot\>[44;142H[K[44;1H[1;43r[1;1H[13M[1;44r[32;2H [34m// Run the test in continuous mode[m
4190 run_continuous();
4191 stop_continuous();
4192
4193 [34m// End the curses[m
4194 endwin();
4195}
4196
4197[34m/*
4198 * "Main" function for one-shot mode
4199 */[m
4200[32mvoid[m mainOneShot([32mvoid[m)[44;1H[K[44;142H223,6[9C38%[43;6H[?12l[?25h[?25l[1;43r[43;1H
4201[1;44r[43;1H{[44;142H[K[44;142H224,1[9C38%[43;1H[?12l[?25h[?25l[1;43r[43;1H
4202[1;44r[43;2H [32mint[m i;[44;142H[K[44;142H225,6[9C38%[43;6H[?12l[?25h[?25l[1;43r[43;1H
4203[1;44r[43;2H [32mint[m failed = [31m0[m;[44;142H[K[44;142H226,6[9C39%[43;6H[?12l[?25h[?25l[1;43r[43;1H
4204[1;44r[44;142H[K[44;142H227,0-1[7C39%[43;1H[?12l[?25h[?25l[1;43r[43;1H
4205[1;44r[43;2H [34m// Reset the board and initialize the tests[m[44;142H[K[44;142H228,6[9C39%[43;6H[?12l[?25h[?25l[1;43r[43;1H
4206[1;44r[43;2H reset_board();[44;142H[K[44;142H229,6[9C39%[43;6H[?12l[?25h[?25l[1;43r[43;1H
4207[1;44r[43;2H reset_continuous();[44;142H[K[44;142H230,6[9C39%[43;6H[?12l[?25h[?25l[1;43r[43;1H
4208[1;44r[44;142H[K[44;142H231,0-1[7C40%[43;1H[?12l[?25h[?25l[1;43r[43;1H
4209[1;44r[43;2H [34m// Run the test in one-shot mode mode[m[44;142H[K[44;142H232,6[9C40%[43;6H[?12l[?25h[?25l[1;43r[43;1H
4210[1;44r[43;2H printf([31m"NetFPGA selftest [m[35m%s\n[m[31m"[m, SELFTEST_VERSION);[44;142H[K[44;142H233,6[9C40%[43;6H[?12l[?25h[?25l[1;43r[43;1H
4211[1;44r[43;2H printf([31m"Running"[m);[44;142H[K[44;142H234,6[9C40%[43;6H[?12l[?25h[?25l[1;43r[43;1H
4212[1;44r[43;2H fflush([31mstdout[m);[44;142H[K[44;142H235,6[9C40%[43;6H[?12l[?25h[?25l[1;43r[43;1H
4213[1;44r[43;2H [38;5;130mfor[m (i = [31m0[m; i < ONE_SHOT_ITER; i++) {[44;142H[K[44;142H236,6[9C41%[43;6H[?12l[?25h[?25l[1;43r[43;1H
4214[1;44r[43;4H sleep([31m1[m);[44;142H[K[44;142H237,6[9C41%[43;6H[?12l[?25h[?25l[1;43r[43;1H
4215[1;44r[43;4H printf([31m"."[m);[44;142H[K[44;142H238,6[9C41%[43;6H[?12l[?25h[?25l[1;43r[43;1H
4216[1;44r[43;4H fflush([31mstdout[m);[44;142H[K[44;142H239,6[9C41%[43;6H[?12l[?25h[?25l[1;43r[43;1H
4217[1;44r[39;39H[106m{[m[43;2H [106m}[m[44;142H[K[44;142H240,3[9C42%[43;3H[?12l[?25h[?25l[1;43r[43;1H
4218[1;44r[38;39H{[42;3H}
4219 printf([31m" "[m);[44;142H[K[44;142H241,6[9C42%[43;6H[?12l[?25h[?25l[1;43r[43;1H
4220[1;44r[44;142H[K[44;142H242,0-1[7C42%[43;1H[?12l[?25h[?25l[1;43r[43;1H
4221[1;44r[43;2H [34m// Verify the results[m[44;142H[K[44;142H243,6[9C42%[43;6H[?12l[?25h[?25l[1;43r[43;1H
4222[1;44r[43;2H [38;5;130mfor[m (i = [31m0[m; i < NUM_TESTS; i++) {[44;142H[K[44;142H244,6[9C42%[43;6H[?12l[?25h[?25l[1;43r[43;1H
4223[1;44r[43;4H [38;5;130mif[m (!modules[i].get_result()) {[44;142H[K[44;142H245,6[9C43%[43;6H[?12l[?25h[?25l[1;43r[43;1H
4224[1;44r[43;6H [38;5;130mif[m (!failed)[44;142H[K[44;142H246,6[9C43%[43;6H[?12l[?25h[?25l[1;43r[43;1H
4225[1;44r[43;8H printf([31m"FAILED. Failing tests: "[m);[44;142H[K[44;142H247,6[9C43%[43;6H[?12l[?25h[?25l[1;43r[43;1H
4226[1;44r[43;6H [38;5;130melse[m[44;142H[K[44;142H248,6[9C43%[43;6H[?12l[?25h[?25l[1;43r[43;1H
4227[1;44r[43;8H printf([31m", "[m);[44;142H[K[44;142H249,6[9C43%[43;6H[?12l[?25h[?25l[1;43r[43;1H
4228[1;44r[43;6H printf(modules[i].name);[44;142H[K[44;142H250,6[9C44%[43;6H[?12l[?25h[?25l[1;43r[43;1H
4229[1;44r[44;142H[K[44;142H251,0-1[7C44%[43;1H[?12l[?25h[?25l[1;43r[43;1H
4230[1;44r[43;6H [34m// Record that the tests have failed[m[44;142H[K[44;142H252,6[9C44%[43;6H[?12l[?25h[?25l[1;43r[43;1H
4231[1;44r[43;6H failed = [31m1[m;[44;142H[K[44;142H253,6[9C44%[43;6H[?12l[?25h[?25l[44;144H2[42;6H[?12l[?25h[?25l[44;144H1,0-1[41;1H[?12l[?25h[?25l[44;144H0,6 [40;6H[?12l[?25h[?25l[44;143H49[39;6H[?12l[?25h[?25l[44;144H8[38;6H[?12l[?25h[?25l[44;144H7[37;6H[?12l[?25h[?25l[44;144H6[36;6H[?12l[?25h[?25l[44;144H5[35;6H[?12l[?25h[?25l[44;144H4[34;6H[?12l[?25h[?25l[44;144H3[33;6H[?12l[?25h[?25l[44;144H2,0-1[32;1H[?12l[?25h[?25l[44;144H1,6 [31;6H[?12l[?25h[?25l[26;39H[106m{[30;3H}[m[44;144H0,3[30;3H[?12l[?25h[?25l[26;39H{[30;3H}[44;143H39,6[29;6H[?12l[?25h[?25l[44;144H8[28;6H[?12l[?25h[?25l[44;144H7[27;6H[?12l[?25h[?25l[44;144H6[26;6H[?12l[?25h[?25l[44;144H5[25;6H[?12l[?25h[?25l[44;144H4[24;6H[?12l[?25h[?25l[44;144H3[23;6H[?12l[?25h[?25l[44;144H2[22;6H[?12l[?25h[?25l[44;144H1,0-1[21;1H[?12l[?25h[?25l[44;144H0,6 [20;6H[?12l[?25h[?25l[44;143H29[19;6H[?12l[?25h[?25l[44;146H3[19;3H[?12l[?25h[?25l[44;1H/\<reset_board\>[44;142H[K[44;1H[27m[m[H[2J[1;1H[34m * Clear a line
4232 */[m
4233[32mvoid[m clear_line([32mvoid[m) {
4234 [32mint[m n;
4235
4236 n = COLS;
4237 [38;5;130mfor[m (; n > [31m0[m; n--)[8;6H addch([31m' '[m);
4238}
4239
4240[34m/*
4241 * Run the program in continuous mode
4242 */[m
4243[32mvoid[m run_continuous([32mvoid[m) {
4244 [32mint[m ch = ERR;
4245 [32mint[m count;
4246 [32mint[m prev_lines;
4247 [32mint[m prev_cols;
4248 [32mint[m i;
4249
4250 [34m// Reset the board and initialize the tests[m
4251 reset_board();
4252 reset_continuous();[26;2H [34m// Run the tests continuously and wait[m
4253 [38;5;130mwhile[m ([31m1[m) {
4254 [34m// Remember the screen dimensions[m
4255 prev_lines = LINES;
4256 prev_cols = COLS;[32;4H [34m// Clear the screen and move to the top corner[m
4257 erase();
4258 move([31m0[m,[31m0[m);[36;4H [34m// Display a title bar[m
4259 title_bar();[39;4H [34m// Display the output of the tests[m
4260 move([31m2[m,[31m0[m);[42;4H [38;5;130mfor[m (i = [31m0[m; i < NUM_TESTS; i++) {[43;6H modules[i].show_status_continuous();[44;142H301,3[9C59%[22;3H[?12l[?25h[?25l[44;1H/\<reset_board\>[44;142H[K[44;1H[27m[m[H[2J[1;4H move(LINES - [31m2[m,[31m0[m);[3;4H [34m// Draw the screen[m
4261 refresh();[6;4H [34m// Sleep for a while, looking for key presses[m
4262 count = [31m0[m;
4263 ch = ERR;
4264 [38;5;130mwhile[m (count < [31m10[m && ch != [31m'q'[m && ch != [31m'Q'[m && prev_lines == LINES && prev_cols == COLS) {[10;6H ch = getch();[11;6H count++;
4265 }
4266 [38;5;130mif[m (ch == [31m'q'[m || ch == [31m'Q'[m) {[14;6H [38;5;130mreturn[m;
4267 }
4268 }
4269}
4270
4271[34m/*
4272 * Reset the board
4273 */[m
4274[32mvoid[m reset_board([32mvoid[m) {
4275 u_int val;
4276
4277 [34m/* Read the current value of the control register so that we can modify
4278 * it to do a reset */[m
4279 readReg(&nf2, CPCI_CTRL_REG, &val);
4280
4281 [34m/* Write to the control register to reset it */[m
4282 writeReg(&nf2, CPCI_CTRL_REG, val | CPCI_CTRL_CNET_RESET);
4283}
4284
4285[34m/*
4286 * Handle SIGINT gracefully
4287 */[m
4288[32mvoid[m sigint_handler([32mint[m signum) {
4289 [38;5;130mif[m (signum == [31mSIGINT[m) {
4290 endwin();[40;4H [38;5;130mif[m (continuous)[41;6H stop_continuous();[43;4H printf([31m"Caught SIGINT. Exiting...[m[35m\n[m[31m"[m);[44;142H354,6[9C70%[22;6H[?12l[?25h[?25l[44;144H5[23;6H[?12l[?25h[?25l[44;1H/\<reset_board\>[44;142H[K[44;1H[31msearch hit BOTTOM, continuing at TOP[27m[m[H[2J[1;1HWINDOW *w;
4291
4292[34m/* Function declarations */[m
4293[32mvoid[m mainContinuous([32mvoid[m);
4294[32mvoid[m mainOneShot([32mvoid[m);
4295[34m//void init_work(void);[m
4296[32mvoid[m reset_tests([32mvoid[m);
4297[34m//void show_stats (int loop_iter);
4298//bool show_status_serial_test(void);
4299//bool show_status_sram_test(void);
4300//bool show_status_dram_test(void);
4301//bool show_status_mii_test(void);
4302//bool show_status_phy_test(void);
4303//bool show_status_reg_test(void);
4304//void sram_sw_test(SW_TEST_EFFORT_LEVEL );[m
4305[32mvoid[m processArgs ([32mint[m, [32mchar[m **);
4306[32mvoid[m usage ([32mchar[m*);
4307[32mvoid[m run_continuous([32mvoid[m);
4308[32mvoid[m reset_continuous([32mvoid[m);
4309[32mvoid[m stop_continuous([32mvoid[m);
4310[32mvoid[m sigint_handler([32mint[m signum);
4311[32mvoid[m reset_board([32mvoid[m);
4312[32mvoid[m title_bar([32mvoid[m);
4313[32mvoid[m clear_line([32mvoid[m);
4314
4315[35m#define NUM_TESTS [m[31m8[m
4316[34m/* Selftest module interface */[m
4317[32mstruct[m test_module modules[NUM_TESTS] = {
4318 {
4319 [31m"Clock select"[m,
4320 clkResetContinuous,
4321 clkShowStatusContinuous,
4322 clkStopContinuous,
4323 clkGetResult,
4324 },
4325 {
4326 [31m"Register interface"[m,
4327 regResetContinuous,
4328 regShowStatusContinuous,
4329 regStopContinuous,
4330 regGetResult,
4331 },
4332 {[44;142H81,6[10C12%
4333[31msearch hit BOTTOM, continuing at TOP[m[44;142H[K[44;142H81,6[10C12%[22;6H[?12l[?25h[?25l[44;1H/\<reset_board\>[44;17H[K[44;1H[27m[m[H[2J[1;2H noecho();
4334
4335 [34m//init_work(); //initialization. one time effort[m
4336
4337 [34m// Run the test in continuous mode[m
4338 run_continuous();
4339 stop_continuous();
4340
4341 [34m// End the curses[m
4342 endwin();
4343}
4344
4345[34m/*
4346 * "Main" function for one-shot mode
4347 */[m
4348[32mvoid[m mainOneShot([32mvoid[m)
4349{
4350 [32mint[m i;
4351 [32mint[m failed = [31m0[m;
4352
4353 [34m// Reset the board and initialize the tests[m
4354 reset_board();
4355 reset_continuous();
4356
4357 [34m// Run the test in one-shot mode mode[m
4358 printf([31m"NetFPGA selftest [m[35m%s\n[m[31m"[m, SELFTEST_VERSION);
4359 printf([31m"Running"[m);
4360 fflush([31mstdout[m);
4361 [38;5;130mfor[m (i = [31m0[m; i < ONE_SHOT_ITER; i++) {
4362 sleep([31m1[m);
4363 printf([31m"."[m);
4364 fflush([31mstdout[m);
4365 }
4366 printf([31m" "[m);
4367
4368 [34m// Verify the results[m
4369 [38;5;130mfor[m (i = [31m0[m; i < NUM_TESTS; i++) {
4370 [38;5;130mif[m (!modules[i].get_result()) {[39;6H [38;5;130mif[m (!failed)[40;8H printf([31m"FAILED. Failing tests: "[m);[41;6H [38;5;130melse[m[42;8H printf([31m", "[m);[43;6H printf(modules[i].name);[44;142H229,3[9C44%[22;3H[?12l[?25h[?25l[44;143H30[23;3H[?12l[?25h[?25l[44;1H/\<reset_continuous\>[44;142H[K[44;1H[27m[m[H[2J[1;1H[34m */[m
4371[32mvoid[m clear_line([32mvoid[m) {
4372 [32mint[m n;
4373
4374 n = COLS;
4375 [38;5;130mfor[m (; n > [31m0[m; n--)[7;6H addch([31m' '[m);
4376}
4377
4378[34m/*
4379 * Run the program in continuous mode
4380 */[m
4381[32mvoid[m run_continuous([32mvoid[m) {
4382 [32mint[m ch = ERR;
4383 [32mint[m count;
4384 [32mint[m prev_lines;
4385 [32mint[m prev_cols;
4386 [32mint[m i;
4387
4388 [34m// Reset the board and initialize the tests[m
4389 reset_board();
4390 reset_continuous();[25;2H [34m// Run the tests continuously and wait[m
4391 [38;5;130mwhile[m ([31m1[m) {
4392 [34m// Remember the screen dimensions[m
4393 prev_lines = LINES;
4394 prev_cols = COLS;[31;4H [34m// Clear the screen and move to the top corner[m
4395 erase();
4396 move([31m0[m,[31m0[m);[35;4H [34m// Display a title bar[m
4397 title_bar();[38;4H [34m// Display the output of the tests[m
4398 move([31m2[m,[31m0[m);[41;4H [38;5;130mfor[m (i = [31m0[m; i < NUM_TESTS; i++) {[42;6H modules[i].show_status_continuous();
4399 }[44;142H302,3[9C59%[22;3H[?12l[?25h[?25l[44;1H/\<reset_continuous\>[44;142H[K[44;1H[27m[m[H[2J[1;3H writeReg(&nf2, CPCI_CTRL_REG, val | CPCI_CTRL_CNET_RESET);
4400}
4401
4402[34m/*
4403 * Handle SIGINT gracefully
4404 */[m
4405[32mvoid[m sigint_handler([32mint[m signum) {
4406 [38;5;130mif[m (signum == [31mSIGINT[m) {
4407 endwin();[11;4H [38;5;130mif[m (continuous)[12;6H stop_continuous();[14;4H printf([31m"Caught SIGINT. Exiting...[m[35m\n[m[31m"[m);
4408 exit([31m0[m);
4409 }
4410}
4411
4412[34m/*
4413 * Invoke the reset functions for continuous mode
4414 */[m
4415[32mvoid[m reset_continuous([32mvoid[m) {
4416 [32mint[m i;
4417
4418 [38;5;130mfor[m (i = [31m0[m; i < NUM_TESTS; i++) {
4419 modules[i].reset_continuous();
4420 }
4421}
4422
4423[34m/*
4424 * Invoke the stop functions for continuous mode
4425 */[m
4426[32mvoid[m stop_continuous([32mvoid[m) {
4427 [32mint[m i;
4428
4429 [38;5;130mfor[m (i = [31m0[m; i < NUM_TESTS; i++) {
4430 modules[i].stop_continuous();
4431 }
4432}
4433
4434[34m//initialize. this is one time effort
4435/*void init_work() {
4436 struct timeval tv;[m[44;142H383,6[9C76%[22;6H[?12l[?25h[?25l[44;144H4[23;6H[?12l[?25h[?25l[44;144H5,0-1[24;1H[?12l[?25h[?25l[44;144H6,6 [25;6H[?12l[?25h[?25l[44;144H7[26;6H[?12l[?25h[?25l[44;1H/\<reset_continuous\>[44;142H[K[44;1H[141C387,16[8C76%[26;16H[?12l[?25h[?25l[44;142H[K[44;1H[31msearch hit BOTTOM, continuing at TOP[27m[m[H[2J[1;1H[32mint[m no_sata_flg = [31m0[m;
4437
4438[32mFILE[m * log_file;
4439WINDOW *w;
4440
4441[34m/* Function declarations */[m
4442[32mvoid[m mainContinuous([32mvoid[m);
4443[32mvoid[m mainOneShot([32mvoid[m);
4444[34m//void init_work(void);[m
4445[32mvoid[m reset_tests([32mvoid[m);
4446[34m//void show_stats (int loop_iter);
4447//bool show_status_serial_test(void);
4448//bool show_status_sram_test(void);
4449//bool show_status_dram_test(void);
4450//bool show_status_mii_test(void);
4451//bool show_status_phy_test(void);
4452//bool show_status_reg_test(void);
4453//void sram_sw_test(SW_TEST_EFFORT_LEVEL );[m
4454[32mvoid[m processArgs ([32mint[m, [32mchar[m **);
4455[32mvoid[m usage ([32mchar[m*);
4456[32mvoid[m run_continuous([32mvoid[m);
4457[32mvoid[m reset_continuous([32mvoid[m);
4458[32mvoid[m stop_continuous([32mvoid[m);
4459[32mvoid[m sigint_handler([32mint[m signum);
4460[32mvoid[m reset_board([32mvoid[m);
4461[32mvoid[m title_bar([32mvoid[m);
4462[32mvoid[m clear_line([32mvoid[m);
4463
4464[35m#define NUM_TESTS [m[31m8[m
4465[34m/* Selftest module interface */[m
4466[32mstruct[m test_module modules[NUM_TESTS] = {
4467 {
4468 [31m"Clock select"[m,
4469 clkResetContinuous,
4470 clkShowStatusContinuous,
4471 clkStopContinuous,
4472 clkGetResult,
4473 },
4474 {
4475 [31m"Register interface"[m,
4476 regResetContinuous,
4477 regShowStatusContinuous,
4478 regStopContinuous,[44;142H78,6[10C11%
4479[31msearch hit BOTTOM, continuing at TOP[m[44;142H[K[44;142H78,6[10C11%[22;6H[?12l[?25h[?25l[44;1H/\<reset_continuous\>[44;22H[K[44;1H[27m[m[H[2J[2;2H [34m//init_work(); //initialization. one time effort[m
4480
4481 [34m// Run the test in continuous mode[m
4482 run_continuous();
4483 stop_continuous();
4484
4485 [34m// End the curses[m
4486 endwin();
4487}
4488
4489[34m/*
4490 * "Main" function for one-shot mode
4491 */[m
4492[32mvoid[m mainOneShot([32mvoid[m)
4493{
4494 [32mint[m i;
4495 [32mint[m failed = [31m0[m;
4496
4497 [34m// Reset the board and initialize the tests[m
4498 reset_board();
4499 reset_continuous();
4500
4501 [34m// Run the test in one-shot mode mode[m
4502 printf([31m"NetFPGA selftest [m[35m%s\n[m[31m"[m, SELFTEST_VERSION);
4503 printf([31m"Running"[m);
4504 fflush([31mstdout[m);
4505 [38;5;130mfor[m (i = [31m0[m; i < ONE_SHOT_ITER; i++) {
4506 sleep([31m1[m);
4507 printf([31m"."[m);
4508 fflush([31mstdout[m);
4509 }
4510 printf([31m" "[m);
4511
4512 [34m// Verify the results[m
4513 [38;5;130mfor[m (i = [31m0[m; i < NUM_TESTS; i++) {
4514 [38;5;130mif[m (!modules[i].get_result()) {[38;6H [38;5;130mif[m (!failed)[39;8H printf([31m"FAILED. Failing tests: "[m);[40;6H [38;5;130melse[m[41;8H printf([31m", "[m);[42;6H printf(modules[i].name);[44;142H230,3[9C44%[22;3H[?12l[?25h[?25l[44;142H[K[44;1H:[?12l[?25hq[?25l[?12l[?25h
4515[?25l[44;1H[K[44;1H[?1l>[?12l[?25h[?1049l]0;netfpga@node1-1: ~/netfpga/projects/selftest/swnetfpga@node1-1:~/netfpga/projects/selftest/sw$ pwd
4516/home/netfpga/netfpga/projects/selftest/sw
4517]0;netfpga@node1-1: ~/netfpga/projects/selftest/swnetfpga@node1-1:~/netfpga/projects/selftest/sw$ pwdvi selftest.c [5Psudo su -
4518]0;root@node1-1.sb9.orbit-lab.org: ~root@node1-1:~# exitls -al[K~netfpga/netfpga/projects/selftest/sw/selftest -ncn
4519Found net device: nf2c0
4520CPCI Information
4521----------------
4522Version: 4 (rev 1)
4523
4524Device (Virtex) Information
4525---------------------------
4526Project directory: selftest
4527Project name: Selftest
4528Project description: NetFPGA selftest -- exercises all major subsystems of the board
4529
4530Device ID: 5
4531Version: 1.1.0
4532Built against CPCI version: 4 (rev 1)
4533
4534[?1049h[1;44r[m(B[4l[?7h[H[2J[0;7m(B NetFPGA selftest v1.00 alpha [3;1H[m(BClock test: pass
4535Reg test: pass
4536MDIO test: pass
4537[6GPhy 1: rev 1 up, 1000Base-TX full
4538[6GPhy 2: rev 1 up, 1000Base-TX full
4539[6GPhy 3: rev 1 up, 1000Base-TX full
4540[6GPhy 4: rev 1 up, 1000Base-TX full
4541PHY test: fail
4542 Port 1: link w/ 4 Good: 10187 Bad: 7129
4543 Port 2: link w/ 4 Good: 10050 Bad: 7268
4544 Port 3: no link Good: 10110 Bad: 7209
4545 Port 4: link w/ 3 Good: 10136 Bad: 7185
4546DRAM test: Iteration: 1 Good: 0 Bad: 0 B/W: nan Gbps
4547SRAM test: Iteration: 1 Good: 0 Bad: 0 B/W: nan Gbps
4548SATA Test Disabled
4549DMA test: Iteration(one pkt write, read, compare): 40 Good: 40 Bad: 0
4550[44d[0;7m(BQ[m(B Quit
4551[A[11;12Hno link Good: 30354 Bad: 77576[K[12;12Hno link Good: 28729 Bad: 79203[K[13;26H29345[13;40H8589[14;12Hno link Good: 29590 Bad: 78345[K[15;23H3[15;33H2[15;51H10.74 Gbps[16;23H34 Good: 33 Bad: 0 B/W: 4.43 Gbps[18;52H8[18;63H8
4552[43d[11;26H55457[11;39H142845[12;26H52463[12;39H145840[13;26H53620[13;39H144684[14;12Hlink w/ 2 Good: 54014 Bad: 144291[15;23H6[15;33H5[15;52H3.42[16;23H67[16;34H66[18;52H120 Good: 120 Bad: 0
4553[43d[11;12Hlink w/ 3 Good: 108530 Bad: 180155[12;26H104779 Bad: 183907[13;26H106286 Bad: 182401[14;28H106771 Bad: 181917[15;23H8[15;33H7[15;52H2.53[16;23H100 Good: 99 Bad: 0 B/W: 4.43 Gbps[18;53H6[18;65H6
4554[43d[11;20H2[11;29H53341[11;42H225742[12;27H48562[12;40H230522[13;27H50487[13;40H228598[14;20H3[14;29H51227[14;42H227859[15;23H10 Good: 9 Bad: 0 B/W: 9.66[16;24H34[16;35H133 Bad: 0 B/W: 3.57 Gbps[18;52H20[18;64H20
4555[43d[11;20H4[11;29H72497[11;43H96979[12;27H6609[12;40H303385[13;27H68839[13;40H300639[14;12Hno link Good: 169723 Bad: 299757[K[15;24H3[15;34H12 Bad: 0 B/W: 10.74 Gbps[16;24H67[16;36H66[16;57H71[18;53H4[18;65H4
4556[43d[11;12Hno link Good: 211272 Bad: 348601[K[12;12Hlink w/ 4 Good: 203832 Bad: 356042[13;26H207000[13;41H52876[14;12Hlink w/ 1 Good: 208196 Bad: 351681[15;24H5[15;35H4[16;23H200[16;36H99[16;57H82[18;53H8[18;65H8
4557[43d[11;12Hlink w/ 2 Good: 264351 Bad: 385917[12;12Hno link Good: 256176 Bad: 394093[K[13;27H59669[13;41H90601[14;20H2[14;29H60992[14;43H89280[15;24H7[15;35H6[16;24H33[16;35H232[16;58H9[18;52H32[18;64H32
4558[43d[11;12Hno link Good: 291105 Bad: 449561[K[12;27H81464[12;40H459204[13;27H85535[13;40H455134[14;12Hno link Good: 286984 Bad: 453686[K[15;23H20[15;35H9[15;54H1.33[16;24H66[16;36H65[16;57H95[18;53H6[18;65H6
4559[43d[11;26H310304[11;40H520758[12;27H99072[12;40H531991[13;12Hlink w/ 1 Good: 303814 Bad: 527250[14;26H305503[14;40H525563[15;24H2[15;34H21[15;56H27[16;24H99[16;36H98[16;55H4.00[18;52H40[18;64H40
4560[43d[11;27H6267[11;41H58784[12;12Hlink w/ 3 Good: 350792 Bad: 570667[13;20H4[13;29H55877[13;43H65583[14;27H57678[14;41H63784[15;24H5[15;35H4[15;56H71[16;23H332[16;35H331[16;58H4[18;53H4[18;65H4
4561[43d[11;26H409550[11;40H602296[12;12Hno link Good: 396727 Bad: 615120[K[13;28H402278[13;42H609571[14;26H404149[14;40H607701[15;24H7[15;35H6[15;56H63[16;24H66[16;36H65[16;58H8[18;53H8[18;65H8
4562[43d[11;27H28639[11;41H73611[12;26H414364[12;41H87887[13;20H1[13;29H20333[13;43H81919[14;12Hlink w/ 3 Good: 422673 Bad: 679580[15;24H9[15;35H8[15;56H56[16;24H99[16;36H98[16;57H11[18;52H52[18;64H52
4563[43d[11;27H56468[11;40H736177[12;27H40915[12;40H751731[13;12Hno link Good: 447453 Bad: 745194[K[14;12Hno link Good: 450012 Bad: 742636[K[15;23H32[15;34H31[15;56H10[16;23H432[16;35H431[16;55H3.86[18;53H6[18;65H6
4564[43d[11;26H50947[11;41H73558[12;12Hlink w/ 1 Good: 493300 Bad: 789738[13;12Hlink w/ 1 Good: 500140 Bad: 782899[14;12Hlink w/ 2 Good: 502784 Bad: 780256[15;24H4[15;35H3[15;56H07[16;24H65[16;36H64[16;58H9[18;52H60[18;64H60
4565[43d[11;12Hlink w/ 3 Good: 542714 Bad: 830723[12;20H3[28G525238[12;42H848200[13;12Hno link Good: 532562 Bad: 840877[K[14;12Hno link Good: 535390 Bad: 838050[K[15;24H6[15;35H5[15;57H5[16;24H98[16;36H97[16;57H92[18;53H4[18;65H4
4566[43d[11;20H2[11;29H63607[11;42H900226[12;12Hno link Good: 544878 Bad: 918956[K[13;12Hlink w/ 1 Good: 552821 Bad: 911015[14;27H55944[14;40H907893[15;24H9[15;35H8[15;56H33[16;23H531[16;35H530[16;58H5[18;53H8[18;65H8
4567[43d[11;12Hno link Good: 589948 Bad: 964283[K[12;12Hlink w/ 3 Good: 569839 Bad: 984394[13;12Hno link Good: 578276 Bad: 975958[K[14;27H81589[14;41H72646[15;23H41[15;34H40[15;57H0[16;24H64[16;36H63[16;58H8[18;52H72[18;64H72
4568[43d[11;26H609041[11;40H1035587[12;12Hno link Good: 587472 Bad: 1057158[K[13;27H96548[13;40H1048083[14;12Hlink w/ 3 Good: 600052 Bad: 1044580[15;24H4[15;35H3[15;56H54[16;24H98[16;36H97[16;55H4.01[18;53H6[18;65H6
4569[43d[11;12Hlink w/ 3 Good: 661762 Bad: 1073261[12;26H639537[12;42H95487[13;26H648890[13;42H86135[14;20H2[14;29H5257[14;44H82455[15;24H6[15;35H5[15;57H0[16;23H631[16;35H630[16;58H3[18;52H80[18;64H80
4570[43d[11;12Hno link Good: 708300 Bad: 1117120[K[12;27H85329[12;41H140092[13;12Hlink w/ 1 Good: 694944 Bad: 1130478[14;12Hno link Good: 698679 Bad: 1126744[K[15;24H8[15;35H7[15;56H47[16;24H64[16;36H63[16;58H4[18;53H4[18;65H4
4571[43d[11;12Hlink w/ 3 Good: 727362 Bad: 1188455[12;26H702901[12;41H212917[13;20H2[28G713123[13;43H202696[14;26H717223[14;42H98598[15;23H51[15;34H50[15;56H6[16;24H97[16;36H96[16;58H6[18;53H8[18;65H8
4572[43d[11;20H4[11;29H5457[11;43H251639[12;12Hlink w/ 4 Good: 728623 Bad: 1277589[13;20H1[13;29H39309[13;44H66904[14;27H43789[14;41H262425[15;24H3[15;35H2[15;56H1[16;23H730[16;35H729[16;55H3.91[18;52H92[18;64H92
4573[43d[11;12Hno link Good: 807609 Bad: 1288999[K[12;12Hno link Good: 780960 Bad: 1315649[K[13;20H4[13;29H9197[13;43H304632[14;27H96586[14;41H300026[15;24H5[15;35H4[15;57H5[16;24H63[16;36H62[16;58H3[18;53H6[18;65H6
4574[43d[11;27H40441[11;41H346563[12;26H812575[12;42H74430[13;12Hno link Good: 824013 Bad: 1362993[K[14;26H828890[14;42H58117[15;24H8[15;35H7[15;56H33[16;24H96[16;36H95[16;58H5[18;52H1000 Good: 1000 Bad: 0
4575[43d[11;27H59545[11;41H417855[12;27H30203[12;41H447198[13;12Hlink w/ 4 Good: 842184 Bad: 1435219[14;12Hlink w/ 3 Good: 847378 Bad: 1430026[15;23H60[15;35H9[15;57H1[16;23H830[16;35H829[16;58H7
4576
4577[54G4[18;67H4
4578[43d[11;26H905770[11;42H62026[12;27H75530[12;42H92267[13;20H2[13;29H87795[13;44H80003[14;29H93257[14;44H74543[15;24H3[15;34H62[15;56H48[16;24H63[16;36H62[16;58H9
4579
4580[54G8[18;67H8
4581[43d[11;27H58958[11;42H99233[12;26H927868[12;41H530325[13;12Hno link Good: 940506 Bad: 1517688[K[14;12Hno link Good: 946070 Bad: 1512126[K[15;24H5[15;35H4[15;57H5[16;24H96[16;36H95[16;55H4.00[18;53H12[18;66H12
4582[43d[11;12Hlink w/ 3 Good: 978182 Bad: 1570401[12;27H45407[12;41H603177[13;27H5869[13;42H89889[14;27H64582[14;42H84004[15;24H7[15;35H6[15;57H3[16;23H929[16;35H928[16;58H2
4583
4584[54G6[18;67H6
4585[43d[11;20H2[28G1004029 Bad: 1634957[12;27H69950[12;42H6903[13;12Hlink w/ 4 Good: 983814 Bad: 1655174[14;12Hlink w/ 3 Good: 990054 Bad: 1648935[15;23H70[15;35H9[15;56H58[16;24H62[16;36H61[16;58H3[18;53H20[18;66H20
4586[43d[11;30H57120[11;45H72262[12;12Hlink w/ 4 Good: 1022328 Bad: 1707055[13;20H1[28G1036480 Bad: 1692904[14;12Hno link Good: 1042795 Bad: 1686590[K[15;24H2[15;34H71[15;57H5[16;24H95[16;36H94[16;58H4
4587
4588[54G4[18;67H4
4589[43d[11;20H3[11;29H10107[11;44H718708[12;12Hno link Good: 1065288 Bad: 1754491[K[13;12Hno link Good: 1079883 Bad: 1739897[K[14;28H86307[14;42H733474[15;24H4[15;35H3[15;56H20[16;23H1028 Good: 1027 Bad: 0 B/W: 3.94 Gbps[18;54H8[18;67H8
4590[43d[11;12Hno link Good: 1120144 Bad: 1790030[K[12;12Hlink w/ 3 Good: 1082899 Bad: 1827276[13;28H98135[13;42H812042[14;27H104830[14;42H805348[15;24H7[15;35H6[15;56H33[16;25H62[16;38H61[16;60H6[18;53H32[18;66H32
4591[43d[11;28H59809[11;42H840758[12;20H1[12;29H121491[12;45H79077[13;12Hlink w/ 1 Good: 1137227 Bad: 1863342[14;12Hlink w/ 2 Good: 1144086 Bad: 1856484[15;24H9[15;35H8[15;57H2[16;25H95[16;38H94[16;60H7[18;54H6[18;67H6
4592[43d[11;12Hlink w/ 4 Good: 1212857 Bad: 1878109[12;20H3[12;30H73864[12;44H917103[13;12Hno link Good: 1189954 Bad: 1901014[K[14;20H3[14;30H96847[14;45H94122[15;23H82[15;34H81[15;56H44[16;24H128[16;37H127[16;60H8[18;53H40[18;66H40
4593[43d[11;12Hno link Good: 1238565 Bad: 1942792[K[12;12Hno link Good: 1198336 Bad: 1983022[K[13;12Hlink w/ 1 Good: 1214971 Bad: 1966388[14;12Hno link Good: 1221913 Bad: 1959447[K[15;24H4[15;35H3[15;57H3[16;25H61[16;38H60[16;60H9[18;54H4[18;67H4
4594[43d[11;28H5789[11;41H2013863[12;27H216239[12;41H2055520[13;12Hno link Good: 1233431 Bad: 2038329[K[14;12Hlink w/ 3 Good: 1240775 Bad: 2030986[15;24H6[15;35H5[15;57H1[16;25H94[16;38H93[16;57H4.00[18;54H8[18;67H8
4595[43d[11;12Hlink w/ 3 Good: 1310997 Bad: 2051156[12;12Hlink w/ 3 Good: 1268563 Bad: 2093591[13;12Hlink w/ 2 Good: 1286136 Bad: 2076019[14;30H93568[14;45H68588[15;24H9[15;35H8[15;56H52[16;24H227[16;37H226[16;60H1[18;53H52[18;66H52
4596[43d[11;12Hno link Good: 1356935 Bad: 2095614[K[12;12Hno link Good: 1313594 Bad: 2138956[K[13;29H331667[13;44H120885[14;29H339157[14;44H113396[15;23H91[15;34H90[15;57H0[16;25H60[16;38H59[16;60H2[18;54H6[18;67H6
4597[43d[11;28H76079[11;42H166867[12;28H31156[12;42H211791[13;12Hno link Good: 1349858 Bad: 2193090[K[14;12Hno link Good: 1357662 Bad: 2185287[K[15;24H3[15;35H2[15;56H49[16;25H94[16;38H93[16;60H4[18;53H60[18;66H60
4598[43d[11;27H404857[11;42H228485[12;28H58559[12;43H74784[13;28H77910[13;42H255434[14;12Hlink w/ 1 Good: 1385938 Bad: 2247407[15;24H6[15;35H5[15;56H33[16;24H327[16;37H326[16;57H3.95[18;54H4[18;67H4
4599[43d[11;28H5799[11;43H65741[12;12Hlink w/ 3 Good: 1410843 Bad: 2312896[13;12Hlink w/ 1 Good: 1430618 Bad: 2293122[14;29H438804[14;45H84938[15;24H8[15;35H7[15;57H2[16;25H60[16;38H59[16;60H7[18;54H8[18;67H8
4600[43d[11;28H90275[11;42H323857[12;12Hno link Good: 1441869 Bad: 2372264[K[13;30H62160[13;44H351975[14;12Hno link Good: 1470538 Bad: 2343598[K[15;23H101 Good: 100 Bad: 0 B/W: 11.42 Gbps[16;25H93[16;38H92[16;60H8[18;53H72[18;66H72
4601[43d[11;12Hlink w/ 2 Good: 1512054 Bad: 2392477[12;28H62451[12;42H442081[13;30H83253[13;44H421280[14;28H9191[14;42H412616[15;25H3[15;37H2[15;59H1[16;24H426[16;37H425[18;54H6[18;67H6
4602[43d[11;12Hno link Good: 1537494 Bad: 2457434[K[12;28H86368[12;42H508562[13;12Hno link Good: 1507865 Bad: 2487066[K[14;27H516766[14;43H7816[15;25H5[15;37H4[15;58H39[16;25H59[16;38H58[16;60H9[18;53H80[18;66H80
4603[43d[11;12Hlink w/ 3 Good: 1557093 Bad: 2528230[12;27H504615[12;43H80709[13;28H26726[13;42H558600[14;28H35871[14;42H54945[15;25H8[15;37H7[15;58H4[16;25H92[16;38H91[16;57H4.00[18;54H4[18;67H4
4604[43d[11;12Hno link Good: 1610223 Bad: 2565495[K[12;28H56943[12;42H618776[13;28H79414[13;43H96307[14;12Hlink w/ 3 Good: 1588619 Bad: 2587103[15;24H10[15;37H9[15;59H7[16;24H526[16;37H525[16;60H1[18;54H8[18;67H8
4605[43d[11;12Hlink w/ 3 Good: 1655936 Bad: 2610180[12;27H601638[12;43H64479[13;27H624559[13;42H641560[14;12Hno link Good: 1633881 Bad: 2632239[K[15;25H2[15;36H11[15;59H6[16;25H59[16;38H58[16;60H2[18;53H92[18;66H92
4606[43d[11;12Hno link Good: 1675022 Bad: 2681490[K[12;28H19302[12;42H737212[13;12Hlink w/ 1 Good: 1642866 Bad: 2713649[14;28H52354[14;42H704162[15;25H5[15;37H4[15;58H55[16;25H92[16;38H91[16;60H3[18;54H6[18;67H6
4607[43d[11;12Hlink w/ 3 Good: 1703966 Bad: 2742942[12;12Hlink w/ 3 Good: 1646949 Bad: 2799961[13;20H2[13;30H70989[13;45H75922[14;28H80860[14;43H6605[15;25H7[15;37H6[15;58H32[16;24H625[16;37H624[16;57H3.96[18;52H200[18;65H200
4608[43d[11;12Hno link Good: 1757036 Bad: 2780267[K[12;12Hno link Good: 1699281 Bad: 2838023[K[13;20H1[13;29H723682[13;44H813624[14;27H733626[14;42H803681[15;24H20[15;37H9[15;58H41[16;25H58[16;38H57[16;60H7[18;54H4[18;67H4
4609[43d[11;28H88994[11;42H838706[12;27H730080[12;43H97622[13;12Hno link Good: 1754937 Bad: 2872765[K[14;28H64990[14;43H62714[15;25H2[15;36H21[15;59H0[16;25H91[16;38H90[16;60H8[18;54H8[18;67H8
4610[43d[11;27H808022[11;42H910071[12;28H4771[12;42H970384[13;12Hlink w/ 4 Good: 1773088 Bad: 2945007[14;28H83475[14;42H934622[15;25H4[15;37H3[15;58H39[16;24H724[16;37H723[16;60H9[18;53H12[18;66H12
4611[43d[11;28H5515[11;43H53340[12;12Hlink w/ 4 Good: 1793936 Bad: 3014558[13;29H819673[13;45H88822[14;27H830236[14;43H78260[15;25H7[15;37H6[15;58H47[16;25H58[16;38H57[16;57H4.00[18;54H6[18;67H6
4612[43d[11;12Hlink w/ 3 Good: 1907383 Bad: 2991498[12;12Hno link Good: 1845379 Bad: 3053503[K[13;12Hno link Good: 1871499 Bad: 3027384[K[14;28H82133[14;41H3016751[15;25H9[15;37H8[15;59H5[16;25H91[16;38H90[18;53H20[18;66H20
4613[43d[11;12Hno link Good: 1926459 Bad: 3062824[K[12;28H63015[12;42H126269[13;28H89826[13;43H99459[14;27H900579[14;43H88708[15;24H32[15;36H31[15;58H53[16;24H824[16;37H823[16;60H1[18;54H4[18;67H4
4614[43d[11;12Hlink w/ 2 Good: 1953250 Bad: 3126433[12;12Hlink w/ 1 Good: 1888537 Bad: 3191148[13;12Hlink w/ 4 Good: 1915956 Bad: 3163730[14;28H26870[14;42H152817[15;25H4[15;37H3[15;59H2[16;25H57[16;38H56[16;60H2[18;54H8[18;67H8
4615[43d[11;28H2006276[11;45H63799[12;29H940888[12;44H229189[13;30H68568[13;44H20151[14;12Hlink w/ 3 Good: 1979641 Bad: 3190438[15;25H6[15;37H5[15;59H0[16;25H90[16;38H89[18;53H32[18;66H32
4616[43d[11;12Hno link Good: 2049328 Bad: 3211142[K[12;20H4[12;30H82952[12;45H7751[13;12Hno link Good: 2011090 Bad: 3249382[K[14;12Hno link Good: 2022275 Bad: 3238199[K[15;25H9[15;37H8[15;58H4[16;24H923[16;37H922[16;57H3.97[18;54H6[18;67H6
4617[43d[11;12Hlink w/ 2 Good: 2068489 Bad: 3282379[12;12Hno link Good: 2000556 Bad: 3350314[K[13;28H29311[13;42H321560[14;12Hlink w/ 2 Good: 2040799 Bad: 3310073[15;24H41[15;36H40[15;58H39[16;25H57[16;38H56[16;60H8[18;53H40[18;66H40
4618[43d[11;29H109072[11;44H332194[12;12Hlink w/ 3 Good: 2040096 Bad: 3401171[13;12Hlink w/ 4 Good: 2069220 Bad: 3372048[14;30H80984[14;45H60285[15;25H3[15;37H2[15;59H8[16;25H90[16;38H89[18;54H4[18;67H4
4619[43d[11;12Hno link Good: 2162202 Bad: 3369458[K[12;20H4[12;30H92428[12;45H39234[13;12Hno link Good: 2121894 Bad: 3409769[K[14;20H1[14;29H133739[14;45H9792[15;25H6[15;37H5[15;58H45[16;23H2023[16;36H2022[16;60H9[18;54H8[18;67H8
4620[43d[11;12Hlink w/ 2 Good: 2187025 Bad: 3435032[12;12Hno link Good: 2115876 Bad: 3506182[K[13;28H45931[13;43H76128[14;30H57921[14;44H464140[15;25H8[15;37H7[15;59H4[16;25H56[16;38H55[16;57H4.00[18;53H52[18;66H52
4621[43d[11;29H207317[11;44H505131[12;28H34698[12;43H77751[13;28H65396[13;42H547054[14;20H3[14;30H77619[14;44H534832[15;24H51[15;36H50[15;58H50[16;25H89[16;38H88[18;54H6[18;67H6
4622[43d[11;20H4[11;30H60398[11;45H42448[12;12Hlink w/ 1 Good: 2187080 Bad: 3615768[13;12Hlink w/ 2 Good: 2218032 Bad: 3584817[14;12Hno link Good: 2230404 Bad: 3572446[K[15;25H3[15;37H2[15;58H49[16;24H122[16;37H121[16;60H1[18;53H60[18;66H60
4623[43d[11;20H2[11;29H305470[11;45H87775[12;12Hno link Good: 2231180 Bad: 3662066[K[13;12Hno link Good: 2262554 Bad: 3630694[K[14;28H75047[14;42H618202[15;25H5[15;37H4[15;59H8[16;25H55[16;38H54[16;60H2[18;54H4[18;67H4
4624[43d[11;12Hno link Good: 2324533 Bad: 3659103[K[12;28H48813[12;42H734825[13;28H80871[13;42H702768[14;28H93481[14;43H90159[15;25H8[15;37H7[15;58H55[16;25H89[16;38H88[18;54H8[18;67H8
4625[43d[11;12Hlink w/ 2 Good: 2352968 Bad: 3721067[12;12Hlink w/ 1 Good: 2275990 Bad: 3798046[13;27H308488[13;43H65549[14;12Hlink w/ 2 Good: 2321491 Bad: 3752547[15;24H60[15;37H9[15;58H38[16;24H222[16;37H221[16;57H3.97[18;53H72[18;66H72
4626[43d[11;20H3[11;29H406091[11;45H58343[12;12Hno link Good: 2328296 Bad: 3836139[K[13;12Hlink w/ 4 Good: 2361162 Bad: 3803274[14;20H1[14;30H74284[14;45H90153[15;25H2[15;36H61[15;59H7[16;25H55[16;38H54[16;60H8[18;54H6[18;67H6
4627[43d[11;12Hno link Good: 2437465 Bad: 3817367[K[12;28H58369[12;43H96464[13;12Hno link Good: 2391841 Bad: 3862993[K[14;12Hno link Good: 2405143 Bad: 3849692[K[15;25H5[15;37H4[15;58H43[16;25H88[16;38H87[16;60H9[18;53H80[18;66H80
4628[43d[11;12Hlink w/ 2 Good: 2460251 Bad: 3884974[12;28H79792[12;42H96543[13;12Hlink w/ 2 Good: 2413780 Bad: 3931448[14;28H27371[14;42H917858[15;25H7[15;37H6[16;24H321[16;37H320[18;54H4[18;67H4
4629[43d[11;12Hno link Good: 2484747 Bad: 3950875[K[12;27H402837[12;41H4032786[13;12Hno link Good: 2437436 Bad: 3998188[K[14;12Hlink w/ 3 Good: 2451363 Bad: 3984263[15;24H70[15;37H9[15;59H8[16;25H54[16;38H53[16;57H4.00[18;54H8[18;67H8
4630[43d[11;12Hlink w/ 2 Good: 2505316 Bad: 4020703[12;12Hlink w/ 3 Good: 2421927 Bad: 4104093[13;28H57093[13;41H4068929[14;20H1[14;30H7143[14;43H4054590[15;25H2[15;36H71[16;25H87[16;38H86[18;53H92[18;66H92
4631[43d[11;20H3[11;30H5837[11;45H58037[12;12Hno link Good: 2474294 Bad: 4142120[K[13;12Hlink w/ 1 Good: 2509751 Bad: 4106664[14;20H3[14;29H524188[14;45H92228[15;25H4[15;37H3[15;59H7[16;24H421[16;37H420[16;60H1[18;54H6[18;67H6
4632[43d[11;12Hno link Good: 2603133 Bad: 4103679[K[12;27H518097[12;43H88717[13;12Hno link Good: 2554037 Bad: 4152778[K[14;20H1[14;30H68541[14;44H138275[15;25H7[15;37H6[15;58H52[16;25H54[16;38H53[16;60H2[18;52H300[18;65H300
4633[43d[11;28H22265[11;43H74944[12;28H35702[12;42H261508[13;28H72300[13;42H224911[14;20H2[14;30H87087[14;44H21012[15;25H9[15;37H8[15;59H1[16;25H87[16;38H86[18;54H4[18;67H4
4634[43d[11;12Hlink w/ 4 Good: 2652260 Bad: 4235341[12;12Hlink w/ 1 Good: 2564448 Bad: 4323154[13;27H601569[13;43H86034[14;20H3[14;29H616471[14;45H71134[15;24H81[15;36H80[15;58H37[16;24H520[16;37H519[16;57H3.98[18;54H8[18;67H8
4635[43d[11;20H3[11;29H705255[11;45H72742[12;12Hno link Good: 2616814 Bad: 4361184[K[13;28H54287[13;42H323712[14;12Hno link Good: 2669295 Bad: 4308705[K[15;25H4[15;37H3[15;58H42[16;25H53[16;38H52[18;53H12[18;66H12
4636[43d[11;12Hno link Good: 2736424 Bad: 4331971[K[12;28H4664[12;42H421752[13;28H84724[13;43H83674[14;28H99867[14;43H68531[15;25H6[15;37H5[16;25H86[16;38H85[16;60H9[18;54H6[18;67H6
4637[43d[11;28H55496[11;42H403293[12;28H64288[12;43H9450[13;27H703037[13;42H45575[14;27H718439[14;42H440353[15;25H9[15;37H8[15;59H7[16;24H619[16;37H618[18;53H20[18;66H20
4638[43d[11;27H803487[11;43H45700[12;12Hlink w/ 4 Good: 2711467 Bad: 4537721[13;12Hlink w/ 2 Good: 2750510 Bad: 4498679[14;12Hlink w/ 1 Good: 2766120 Bad: 4483070[15;24H91[15;36H90[15;59H6[16;25H53[16;38H52[16;57H4.00[18;54H4[18;67H4
4639[43d[11;12Hlink w/ 2 Good: 2854947 Bad: 4484636[12;12Hno link Good: 2762057 Bad: 4577527[K[13;20H4[13;29H80139[13;44H538196[14;12Hno link Good: 2817163 Bad: 4522424[K[15;25H3[15;37H2[15;59H5[16;25H86[16;38H85[18;54H8[18;67H8
4640[43d[11;12Hno link Good: 2874143 Bad: 4555838[K[12;28H79822[12;42H650160[13;20H2[13;30H19713[13;44H610270[14;28H35715[14;43H94270[15;25H6[15;37H5[15;58H50[16;24H719[16;37H718[16;60H1[18;53H32[18;66H32
4641[43d[11;27H901761[11;42H618614[12;12Hlink w/ 1 Good: 2806298 Bad: 4714078[13;12Hno link Good: 2846774 Bad: 4673604[K[14;12Hlink w/ 1 Good: 2862983 Bad: 4657396[15;25H8[15;37H7[16;25H52[16;38H51[18;54H6[18;67H6
4642[43d[11;12Hlink w/ 4 Good: 2954776 Bad: 4655997[12;12Hno link Good: 2858610 Bad: 4752164[K[13;12Hlink w/ 1 Good: 2899473 Bad: 4711303[14;20H3[14;29H915760[14;45H95017[15;23H200[15;37H9[15;58H37[16;25H85[16;38H84[16;57H3.98[18;53H40[18;66H40
4643[43d[11;20H3[11;30H96845[11;44H704321[12;28H99751[12;42H801416[13;12Hno link Good: 2941067 Bad: 4760101[K[14;12Hno link Good: 2957465 Bad: 4743704[K[15;25H3[15;35H202[15;58H42[16;24H818[16;37H817[18;54H4[18;67H4
4644[43d[11;20H4[28G3015991[11;45H75575[12;12Hlink w/ 4 Good: 2917348 Bad: 4874219[13;28H59391[13;42H832177[14;12Hlink w/ 2 Good: 2975873 Bad: 4815696[15;25H5[15;37H4[15;59H1[16;25H51[16;38H50[18;54H8[18;67H8
4645[43d[11;12Hno link Good: 3057370 Bad: 4824590[K[12;30H57813[12;44H92414[13;26H3000330[13;43H81633[14;12Hno link Good: 3016954 Bad: 4865010[K[15;25H8[15;37H7[15;59H6[16;25H85[16;38H84[16;60H9[18;53H52[18;66H52
4646[43d[11;12Hlink w/ 2 Good: 3110441 Bad: 4861914[12;12Hno link Good: 3010219 Bad: 4962137[K[13;12Hlink w/ 2 Good: 3052961 Bad: 4919397[14;28H69795[14;42H902563[15;24H10[15;37H9[15;59H5[16;24H918[16;37H917[16;57H4.00[18;54H6[18;67H6
4647[43d[11;12Hno link Good: 3134500 Bad: 4928249[K[12;28H32773[12;41H5029978[13;12Hno link Good: 3076082 Bad: 4986670[K[14;28H93180[14;43H6957[15;25H2[15;36H11[15;59H4[16;25H51[16;38H50[18;53H60[18;66H60
4648[43d[11;12Hlink w/ 3 Good: 3155634 Bad: 4997517[12;12Hlink w/ 1 Good: 3052529 Bad: 5100623[13;12Hlink w/ 4 Good: 3096449 Bad: 5056704[14;12Hlink w/ 3 Good: 3113849 Bad: 5039305[15;25H5[15;37H4[15;59H9[16;25H84[16;38H83[18;54H4[18;67H4
4649[43d[11;12Hno link Good: 3208734 Bad: 5034807[K[12;20H4[12;29H104791[12;45H38752[13;12Hno link Good: 3149111 Bad: 5094433[K[14;20H1[14;30H66632[14;45H76913[15;25H7[15;37H6[15;59H8[16;23H3017[16;36H3016[16;60H1[18;54H8[18;67H8
4650[43d[11;12Hlink w/ 3 Good: 3252984 Bad: 5080957[12;20H1[12;30H48070[12;45H8587[13;28H92768[13;42H141175[14;20H3[14;29H210410[14;44H123534[15;25H9[15;37H8[15;59H7[16;25H50[16;38H49[18;53H72[18;66H72
4651[43d[11;12Hno link Good: 3272024 Bad: 5152314[K[12;12Hno link Good: 3165739 Bad: 5258601[K[13;27H211050[13;42H213291[14;12Hno link Good: 3228771 Bad: 5195571[K[15;24H22[15;36H21[15;59H1[16;25H83[16;38H82[16;57H3.98[18;54H6[18;67H6
4652[43d[11;27H301375[11;42H213357[12;28H9379[12;42H320934[13;28H39696[13;43H75039[14;28H57647[14;42H257089[15;25H4[15;37H3[15;59H0[16;24H117[16;37H116[18;53H80[18;66H80
4653[43d[11;28H5450[11;43H50623[12;12Hlink w/ 4 Good: 3246079 Bad: 5359051[13;12Hlink w/ 4 Good: 3292310 Bad: 5312821[14;12Hlink w/ 2 Good: 3310406 Bad: 5294726[15;25H7[15;37H6[15;59H5[16;25H50[16;38H49[16;60H9[18;54H4[18;67H4
4654[43d[11;12Hlink w/ 2 Good: 3384942 Bad: 5310583[12;12Hno link Good: 3275423 Bad: 5420103[K[13;12Hno link Good: 3322094 Bad: 5373434[K[14;12Hno link Good: 3340325 Bad: 5355204[K[15;25H9[15;37H8[15;59H4[16;25H83[16;38H82[18;54H8[18;67H8
4655[43d[11;20H3[11;29H408584[11;45H77335[12;12Hlink w/ 3 Good: 3297759 Bad: 5488161[13;12Hlink w/ 4 Good: 3344932 Bad: 5440990[14;12Hlink w/ 1 Good: 3363486 Bad: 5422437[15;24H31[15;36H30[15;59H3[16;24H216[16;37H215[16;57H4.00[18;53H92[18;66H92
4656[43d[11;12Hno link Good: 3432087 Bad: 5444231[K[12;12Hno link Good: 3319839 Bad: 5556481[K[13;12Hno link Good: 3367870 Bad: 5508451[K[14;12Hno link Good: 3386482 Bad: 5489840[K[15;25H4[15;37H3[15;59H8[16;25H49[16;38H48[18;54H6[18;67H6
4657[43d[11;12Hlink w/ 2 Good: 3453464 Bad: 5513251[12;28H39816[12;42H626900[13;12Hlink w/ 1 Good: 3388550 Bad: 5578167[14;12Hlink w/ 3 Good: 3407437 Bad: 5559281[15;25H6[15;37H5[15;59H7[16;25H82[16;38H81[18;52H400[18;65H400
4658[43d[11;12Hno link Good: 3506551 Bad: 5550559[K[12;12Hlink w/ 3 Good: 3392163 Bad: 5664948[13;12Hno link Good: 3441159 Bad: 5615953[K[14;20H1[14;30H60180[14;45H96934[15;25H9[15;37H8[15;58H51[16;24H315[16;37H314[16;60H1[18;54H4[18;67H4
4659[43d[11;12Hlink w/ 4 Good: 3550462 Bad: 5597045[12;12Hno link Good: 3435156 Bad: 5712353[K[13;28H84491[13;43H63019[14;12Hno link Good: 3503617 Bad: 5643894[K[15;24H41[15;36H40[15;59H0[16;25H49[16;38H48[18;54H8[18;67H8
4660[43d[11;12Hno link Good: 3569658 Bad: 5668244[K[12;28H52709[12;43H85194[13;27H502633[13;42H735271[14;28H22373[14;42H715532[15;25H3[15;37H2[15;58H4[16;25H82[16;38H81[16;57H3.98[18;53H12[18;66H12
4661[43d[11;12Hlink w/ 4 Good: 3600547 Bad: 5727751[12;28H82195[12;42H84610[13;12Hlink w/ 1 Good: 3532678 Bad: 5795623[14;28H52781[14;43H75521[15;25H6[15;37H5[15;59H4[16;24H415[16;37H414[18;54H6[18;67H6
4662[43d[11;30H53675[11;45H65018[12;12Hlink w/ 1 Good: 3534508 Bad: 5884186[13;20H4[13;30H85340[13;44H833355[14;27H605669[14;42H813027[15;25H8[15;37H7[15;59H3[16;25H48[16;38H47[16;60H9[18;53H20[18;66H20
4663[43d[11;30H83860[11;44H825231[12;12Hno link Good: 3563448 Bad: 5945644[K[13;12Hno link Good: 3614830 Bad: 5894263[K[14;12Hlink w/ 3 Good: 3635291 Bad: 5873803[15;24H50[15;37H9[16;25H81[16;38H80[18;54H4[18;67H4
4664[43d[11;12Hno link Good: 3703078 Bad: 5896407[K[12;12Hlink w/ 4 Good: 3581059 Bad: 6018427[13;28H32998[13;42H966489[14;12Hno link Good: 3653858 Bad: 5945631[K[15;25H3[15;36H52[15;59H7[16;24H514[16;37H513[16;57H4.00[18;54H8[18;67H8
4665[43d[11;12Hlink w/ 2 Good: 3751886 Bad: 5937998[12;20H3[12;29H629064[12;45H60821[13;12Hlink w/ 2 Good: 3681406 Bad: 6008480[14;12Hlink w/ 1 Good: 3702424 Bad: 5987464[15;25H5[15;37H4[15;59H6[16;25H47[16;38H46[18;53H32[18;66H32
4666[43d[11;20H3[11;29H802379[11;45H77895[12;12Hno link Good: 3678689 Bad: 6101586[K[13;12Hno link Good: 3731371 Bad: 6048905[K[14;12Hno link Good: 3752568 Bad: 6027709[K[15;25H8[15;37H7[15;58H50[16;25H81[16;38H80[18;54H6[18;67H6
4667[43d[11;12Hno link Good: 3821450 Bad: 6049224[K[12;28H96381[12;43H74294[13;12Hlink w/ 1 Good: 3749707 Bad: 6120969[14;28H7104[14;43H9962[15;24H60[15;37H9[15;58H49[16;24H614[16;37H613[16;60H1[18;53H40[18;66H40
4668[43d[11;12Hlink w/ 3 Good: 3850011 Bad: 6111060[12;27H723733[12;42H237339[13;20H2[13;30H77581[13;45H83492[14;12Hlink w/ 1 Good: 3799391 Bad: 6161683[15;25H2[15;36H61[16;25H47[16;38H46[18;54H4[18;67H4
4669[43d[11;29H903103[11;45H48362[12;28H7606[12;43H75403[13;29H830278[13;44H221190[14;20H2[14;29H852226[14;45H9924[15;25H5[15;37H4[15;59H3[16;25H80[16;38H79[16;57H3.98[18;54H8[18;67H8
4670[43d[11;20H4[11;30H46549[11;45H95313[12;27H818545[12;42H323318[13;12Hno link Good: 3873324 Bad: 6268540[K[14;12Hno link Good: 3895212 Bad: 6246653[K[15;25H7[15;37H6[15;59H2[16;24H713[16;37H712[16;60H9[18;53H52[18;66H52
4671[43d[11;12Hno link Good: 3965681 Bad: 6266578[K[12;28H36149[12;43H96111[13;28H91445[13;42H340816[14;12Hlink w/ 3 Good: 3913779 Bad: 6318484[15;25H9[15;37H8[16;25H46[16;38H45[18;54H6[18;67H6
4672[43d[11;12Hlink w/ 2 Good: 4007808 Bad: 6314846[12;28H77603[12;42H445052[13;27H933249[13;43H89407[14;12Hno link Good: 3955778 Bad: 6366879[K[15;24H72[15;36H71[15;59H6[16;25H79[16;38H78[18;53H60[18;66H60
4673[43d[11;12Hno link Good: 4060877 Bad: 6352173[K[12;12Hlink w/ 4 Good: 3929900 Bad: 6483151[13;28H85933[13;42H427119[14;12Hlink w/ 1 Good: 4008536 Bad: 6404518[15;25H4[15;37H3[15;59H5[16;24H813[16;37H812[16;57H4.00[18;54H4[18;67H4
4674[43d[11;28H8392[11;42H419520[12;12Hno link Good: 3951368 Bad: 6552080[K[13;26H4008149[13;43H95301[14;12Hno link Good: 4030961 Bad: 6472490[K[15;25H7[15;37H6[15;59H9[16;25H46[16;38H45[18;54H8[18;67H8
4675[43d[11;12Hlink w/ 3 Good: 4105907 Bad: 6487937[12;28H72012[12;42H621834[13;12Hlink w/ 4 Good: 4029220 Bad: 6564627[14;12Hlink w/ 1 Good: 4052513 Bad: 6541335[15;25H9[15;37H8[15;59H8[16;25H79[16;38H78[18;53H72[18;66H72
4676[43d[11;20H2[11;30H59001[11;44H525238[12;12Hlink w/ 4 Good: 4024372 Bad: 6659869[13;12Hno link Good: 4081875 Bad: 6602367[K[14;29H105281[14;45H78962[15;24H81[15;36H80[16;24H912[16;37H911[16;60H1[18;54H6[18;67H6
4677[43d[11;12Hno link Good: 4202324 Bad: 6572310[K[12;12Hno link Good: 4066676 Bad: 6707960[K[13;27H124663[13;43H49974[14;12Hno link Good: 4148150 Bad: 6626488[K[15;25H4[15;37H3[15;58H51[16;25H45[16;38H44[18;53H80[18;66H80
4678[43d[11;12Hlink w/ 4 Good: 4221452 Bad: 6643580[12;12Hlink w/ 4 Good: 4084307 Bad: 6780727[13;12Hlink w/ 1 Good: 4142985 Bad: 6722050[14;28H66737[14;43H98299[15;25H6[15;37H5[15;58H42[16;25H78[16;38H77[16;57H3.98[18;54H4[18;67H4
4679[43d[11;12Hno link Good: 4252674 Bad: 6702752[K[12;20H1[12;29H114254[12;44H841174[13;12Hno link Good: 4173470 Bad: 6781959[K[14;28H97440[14;42H757990[15;25H8[15;37H7[15;59H1[16;23H4012[16;36H4011[16;60H9[18;54H8[18;67H8
4680[43d[11;12Hlink w/ 2 Good: 4305757 Bad: 6740068[12;20H3[12;30H66636[12;45H79190[13;12Hlink w/ 4 Good: 4226233 Bad: 6819594[14;12Hlink w/ 3 Good: 4250194 Bad: 6795634[15;24H91[15;36H90[15;59H5[16;25H45[16;38H44[18;53H92[18;66H92
4681[43d[11;12Hno link Good: 4335356 Bad: 6800865[K[12;12Hno link Good: 4195022 Bad: 6941200[K[13;12Hno link Good: 4255111 Bad: 6881112[K[14;12Hno link Good: 4279205 Bad: 6857019[K[15;25H3[15;37H2[15;59H4[16;25H78[16;38H77[18;54H6[18;67H6
4682[43d[11;12Hlink w/ 4 Good: 4359876 Bad: 6866739[12;12Hlink w/ 4 Good: 4218196 Bad: 7008420[13;28H78752[13;42H947865[14;27H30329[14;42H923323[15;25H6[15;37H5[15;59H8[16;24H111[16;37H110[16;57H4.00[18;52H500[18;65H500
4683[43d[11;12Hno link Good: 4382603 Bad: 6934409[K[12;12Hno link Good: 4239596 Bad: 7077417[K[13;27H300675[13;41H7016340[14;28H25378[14;43H91638[15;25H8[15;37H7[15;59H7[16;25H44[16;38H43[18;54H4[18;67H4
4684[43d[11;27H404969[11;41H7002437[12;12Hlink w/ 1 Good: 4260490 Bad: 7146918[13;12Hlink w/ 4 Good: 4322209 Bad: 7085200[14;12Hlink w/ 3 Good: 4347203 Bad: 7060207[15;23H300[15;37H9[16;25H77[16;38H76[18;54H8[18;67H8
4685[43d[11;28H58090[11;43H39713[12;12Hno link Good: 4312820 Bad: 7184984[K[13;30H74873[13;44H122932[14;20H2[14;29H400066[14;45H97741[15;25H3[15;35H302[15;58H50[16;24H210[16;37H209[16;60H1[18;53H12[18;66H12
4686[43d[11;27H50124[11;43H86962[12;28H54799[12;42H23340[13;12Hno link Good: 4417269 Bad: 7170935[K[14;12Hno link Good: 4442525 Bad: 7145681[K[15;25H5[15;37H4[15;58H49[16;25H44[16;38H43[18;54H6[18;67H6
4687[43d[11;28H20299[11;42H158299[12;28H72512[12;42H306087[13;28H3552[13;42H243071[14;28H61069[14;42H217533[15;25H7[15;37H6[15;59H1[16;25H77[16;38H76[16;57H3.99[18;53H20[18;66H20
4688[43d[11;28H52048[11;42H216944[12;27H402984[12;43H66009[13;12Hlink w/ 4 Good: 4466433 Bad: 7302562[14;28H92198[14;43H76798[15;24H10[15;37H9[15;59H4[16;24H310[16;37H309[18;54H4[18;67H4
4689[43d[11;27H60510[11;43H54280[12;12Hlink w/ 4 Good: 4455349 Bad: 7404041[13;12Hno link Good: 4519095 Bad: 7340296[K[14;12Hlink w/ 3 Good: 4544958 Bad: 7314434[15;25H2[15;36H11[16;25H43[16;38H42[18;54H8[18;67H8
4690[43d[11;28H34565[11;42H31522[12;12Hno link Good: 4483411 Bad: 7466375[K[13;28H47638[13;42H402149[14;12Hno link Good: 4573755 Bad: 7376033[K[15;25H5[15;37H4[15;59H7[16;25H76[16;38H75[18;53H32[18;66H32
4691[43d[11;28H53667[11;43H86515[12;27H501038[12;42H53914[13;28H65974[13;43H74210[14;28H92288[14;42H447897[15;25H7[15;37H6[15;59H6[16;24H409[16;37H408[16;57H4.00[18;54H6[18;67H6
4692[43d[11;27H703322[11;42H427256[12;28H49964[12;43H8061[13;27H61521[13;42H515366[14;27H64169[14;43H88884[15;25H9[15;37H8[16;25H42[16;38H41[18;53H40[18;66H40
4693[43d[11;28H52889[11;43H68084[12;28H98698[12;42H622276[13;12Hlink w/ 1 Good: 4664344 Bad: 7556632[14;28H90906[14;42H530071[15;24H22[15;36H21[15;59H9[16;25H76[16;38H75[18;54H4[18;67H4
4694[43d[11;28H7201[11;42H539352[12;27H616299[12;43H95073[13;12Hno link Good: 4682590 Bad: 7628784[K[14;12Hlink w/ 3 Good: 4709343 Bad: 7602032[15;25H4[15;37H3[15;59H8[16;24H509[16;37H508[16;60H1[18;54H8[18;67H8
4695[43d[11;12Hlink w/ 2 Good: 4801481 Bad: 7600280[12;12Hlink w/ 1 Good: 4644466 Bad: 7757297[13;27H711409[13;43H90355[14;20H1[14;30H38260[14;45H63505[15;25H6[15;37H5[16;25H42[16;38H41[18;53H52[18;66H52
4696[43d[11;12Hno link Good: 4854518 Bad: 7637646[K[12;30H96838[12;45H9532[13;12Hlink w/ 2 Good: 4764044 Bad: 7728122[14;12Hno link Good: 4791037 Bad: 7701130[K[15;25H9[15;37H8[15;59H3[16;25H75[16;38H74[16;57H3.99[18;54H6[18;67H6
4697[43d[11;28H95889[11;43H86672[12;12Hno link Good: 4737041 Bad: 7845521[K[13;12Hno link Good: 4804810 Bad: 7777753[K[14;27H83189[14;43H50667[15;24H31[15;36H30[16;24H608[16;37H607[18;53H60[18;66H60
4698[43d[11;12Hlink w/ 4 Good: 4915084 Bad: 7757869[12;28H5471[12;42H918244[13;12Hlink w/ 4 Good: 4823174 Bad: 7849782[14;28H50364[14;42H822593[15;25H4[15;37H3[15;59H6[16;25H41[16;38H40[18;54H4[18;67H4
4699[43d[11;20H2[11;30H58220[11;44H80512[12;12Hlink w/ 1 Good: 4796879 Bad: 7966471[13;30H65729[13;45H9762[14;12Hlink w/ 2 Good: 4893288 Bad: 7870064[15;25H6[15;37H5[16;25H74[16;38H73[18;54H8[18;67H8
4700[43d[11;28H5011297[11;45H4244[12;12Hno link Good: 4849294 Bad: 8004453[K[13;12Hno link Good: 4918410 Bad: 7935338[K[14;29H946080[14;44H907669[15;25H8[15;37H7[15;59H5[16;24H708[16;37H707[16;57H4.00[18;53H72[18;66H72
4701[43d[11;12Hno link Good: 5033528 Bad: 7910607[K[12;28H70013[12;43H7412[13;12Hlink w/ 4 Good: 4939758 Bad: 8004379[14;12Hno link Good: 4967597 Bad: 7976541[K[15;24H41[15;36H40[15;59H8[16;25H41[16;38H40[18;54H6[18;67H6
4702[43d[11;28H56485[11;43H78053[12;28H91542[12;42H142998[13;12Hno link Good: 4961880 Bad: 8072661[K[14;28H89993[14;41H8044549[15;25H3[15;37H2[16;25H74[16;38H73[18;53H80[18;66H80
4703[43d[11;12Hlink w/ 2 Good: 5109552 Bad: 8015383[12;12Hlink w/ 4 Good: 4943898 Bad: 8181038[13;12Hlink w/ 1 Good: 5014492 Bad: 8110445[14;12Hlink w/ 1 Good: 5042741 Bad: 8082198[15;25H6[15;37H5[15;58H50[16;24H807[16;37H806[16;60H1[18;54H4[18;67H4
4704[43d[11;12Hno link Good: 5152057 Bad: 8063275[K[12;12Hno link Good: 4985318 Bad: 8230016[K[13;12Hno link Good: 5056367 Bad: 8158968[K[14;12Hno link Good: 5084814 Bad: 8130522[K[15;25H8[15;37H7[16;25H40[16;38H39[18;54H8[18;67H8
4705[43d[11;28H71123[11;42H134604[12;26H5002804[12;42H302925[13;28H74614[13;42H231116[14;27H10329[14;42H202437[15;24H50[15;37H9[15;58H42[16;25H73[16;38H72[16;57H3.99[18;53H92[18;66H92
4706[43d[11;12Hlink w/ 2 Good: 5202162 Bad: 8193958[12;12Hlink w/ 4 Good: 5032626 Bad: 8363495[13;12Hlink w/ 1 Good: 5104998 Bad: 8291124[14;12Hlink w/ 1 Good: 5133857 Bad: 8262266[15;25H3[15;36H52[15;59H5[16;24H906[16;37H905[18;54H6[18;67H6
4707[43d[11;12Hno link Good: 5255259 Bad: 8231255[K[12;20H3[12;30H85051[12;44H401464[13;30H57671[13;44H328846[14;30H8660[14;45H99911[15;25H5[15;37H4[16;25H40[16;38H39[18;52H600[18;65H600
4708[43d[11;12Hlink w/ 3 Good: 5284018 Bad: 8292899[12;12Hno link Good: 5112590 Bad: 8464328[K[13;12Hno link Good: 5185631 Bad: 8391288[K[14;12Hno link Good: 5214875 Bad: 8362045[K[15;25H7[15;37H6[15;59H4[16;25H73[16;38H72[16;57H4.00[18;54H4[18;67H4
4709[43d[11;29H30949[11;44H357813[12;12Hlink w/ 3 Good: 5136730 Bad: 8530582[13;12Hlink w/ 2 Good: 5210315 Bad: 8456998[14;12Hlink w/ 2 Good: 5239940 Bad: 8427375[15;24H60[15;37H9[15;59H7[16;23H5006[16;36H5005[18;54H8[18;67H8
4710[43d[11;12Hno link Good: 5331344 Bad: 8426364[K[12;12Hno link Good: 5157102 Bad: 8600607[K[13;30H31454[13;44H526256[14;12Hno link Good: 5261231 Bad: 8496480[K[15;25H2[15;36H61[16;25H39[16;38H38[18;53H12[18;66H12
4711[43d[11;12Hlink w/ 4 Good: 5354505 Bad: 8493594[12;12Hlink w/ 1 Good: 5179039 Bad: 8669062[13;30H53856[13;45H9424[14;12Hlink w/ 1 Good: 5283888 Bad: 8564215[15;25H5[15;37H4[15;58H50[16;25H72[16;38H71[18;54H6[18;67H6
4712[43d[11;20H2[11;29H407630[11;44H530873[12;12Hno link Good: 5231390 Bad: 8707113[K[13;12Hno link Good: 5306541 Bad: 8631964[K[14;20H3[14;29H336700[14;44H601806[15;25H7[15;37H6[15;58H49[16;24H105[16;37H104[16;60H1[18;53H20[18;66H20
4713[43d[11;12Hno link Good: 5449828 Bad: 8579071[K[12;28H72529[12;43H56371[13;28H48207[13;43H8069[14;12Hno link Good: 5378440 Bad: 8650462[K[15;25H9[15;37H8[16;25H38[16;38H37[18;54H4[18;67H4
4714[43d[11;12Hlink w/ 2 Good: 5468900 Bad: 8650394[12;28H90140[12;42H829155[13;28H66515[13;42H752782[14;28H96954[14;42H722344[15;24H72[15;36H71[15;59H5[16;25H72[16;38H71[16;57H3.99[18;54H8[18;67H8
4715[43d[11;20H3[11;29H50144[11;44H708248[12;12Hlink w/ 4 Good: 5321399 Bad: 8888290[13;12Hlink w/ 2 Good: 5398514 Bad: 8811177[14;12Hlink w/ 3 Good: 5429015 Bad: 8780677[15;25H4[15;37H3[15;59H4[16;24H205[16;37H204[18;53H32[18;66H32
4716[43d[11;12Hno link Good: 5554552 Bad: 8745531[K[12;20H3[12;30H73695[12;44H9263[13;20H1[13;29H451189[13;45H4889[14;12Hno link Good: 5481745 Bad: 8818342[K[15;25H6[15;37H5[16;25H38[16;38H37[18;54H6[18;67H6
4717[43d[11;28H82966[11;42H807516[12;12Hno link Good: 5400824 Bad: 8989659[K[13;20H2[13;30H78922[13;44H911563[14;27H509591[14;43H80895[15;25H9[15;37H8[15;59H7[16;25H71[16;38H70[16;57H4.00[18;53H40[18;66H40
4718[43d[11;27H602078[11;43H78797[12;28H18438[12;41H9062438[13;12Hno link Good: 5497205 Bad: 8983673[K[14;28H2808[14;42H952798[15;24H81[15;36H80[15;59H6[16;24H304[16;37H303[18;54H4[18;67H4
4719[43d[11;12Hlink w/ 4 Good: 5652744 Bad: 8918531[12;28H68269[12;42H103007[13;12Hlink w/ 4 Good: 5547341 Bad: 9023937[14;28H78473[14;43H92805[15;25H4[15;37H3[15;59H9[16;25H37[16;38H36[18;54H8[18;67H8
4720[43d[11;12Hno link Good: 5701530 Bad: 8960139[K[12;12Hlink w/ 3 Good: 5516033 Bad: 9145637[13;12Hno link Good: 5595518 Bad: 9066154[K[14;27H626770[14;41H9034902[15;25H6[15;37H5[15;59H8[16;25H70[16;38H69[18;53H52[18;66H52
4721[43d[11;28H20579[11;41H9031487[12;12Hno link Good: 5533613 Bad: 9218455[K[13;27H613744[13;42H138325[14;28H45254[14;42H106816[15;25H8[15;37H7[16;24H404[16;37H403[16;60H1[18;54H6[18;67H6
4722[43d[11;12Hlink w/ 2 Good: 5750794 Bad: 9091670[12;28H62802[12;43H79663[13;12Hlink w/ 1 Good: 5643384 Bad: 9199082[14;28H75077[14;43H67390[15;24H91[15;36H90[15;58H50[16;25H37[16;38H36[18;53H60[18;66H60
4723[43d[11;29H803891[11;44H128968[12;12Hlink w/ 1 Good: 5615056 Bad: 9317804[13;30H96068[13;44H236793[14;27H727805[14;42H205057[15;25H3[15;37H2[15;58H44[16;25H70[16;38H69[16;57H3.99[18;54H4[18;67H4
4724[43d[11;20H4[11;30H43286[11;45H79[12;30H53255[12;45H70000[13;12Hno link Good: 5734844 Bad: 9288412[K[14;28H66726[14;43H56531[15;25H5[15;37H4[15;59H3[16;24H503[16;37H502[18;54H8[18;67H8
4725[43d[11;12Hno link Good: 5862401 Bad: 9251247[K[12;12Hno link Good: 5670989 Bad: 9442660[K[13;12Hlink w/ 1 Good: 5753079 Bad: 9360572[14;28H85387[14;42H328265[15;25H8[15;37H7[15;59H6[16;25H36[16;38H35[18;53H72[18;66H72
4726[43d[11;12Hlink w/ 3 Good: 5906510 Bad: 9297534[12;12Hlink w/ 4 Good: 5714105 Bad: 9489940[13;12Hno link Good: 5796546 Bad: 9407500[K[14;27H829160[14;43H74887[15;23H400[15;37H9[16;25H69[16;38H68[16;57H4.00[18;54H6[18;67H6
4727[43d[11;12Hno link Good: 5959581 Bad: 9334856[K[12;12Hno link Good: 5766444 Bad: 9527994[K[13;27H849245[13;43H45194[14;12Hlink w/ 3 Good: 5881935 Bad: 9412505[15;25H3[15;35H402[15;59H8[16;24H602[16;37H601[18;53H80[18;66H80
4728[43d[11;28H80819[11;42H404020[12;28H86249[12;43H98591[13;28H69758[13;42H515083[14;12Hno link Good: 5902568 Bad: 9482274[K[15;25H5[15;37H4[16;25H36[16;38H35[18;54H4[18;67H4
4729[43d[11;26H6004651[11;43H70584[12;12Hlink w/ 3 Good: 5808677 Bad: 9666560[13;12Hlink w/ 1 Good: 5892720 Bad: 9582518[14;28H25966[14;42H549273[15;25H7[15;37H6[15;59H7[16;25H69[16;38H68[18;54H8[18;67H8
4730[43d[11;28H5768[11;42H507950[12;12Hno link Good: 5860989 Bad: 9704643[K[13;29H945329[13;44H620304[14;28H78724[14;43H86910[15;24H10[15;37H9[15;58H50[16;24H702[16;37H701[16;60H1[18;53H92[18;66H92
4731[43d[11;28H99298[11;43H5673[12;12Hlink w/ 4 Good: 5901474 Bad: 9754555[13;12Hno link Good: 5986383 Bad: 9669647[K[14;26H6019842[14;42H636189[15;25H2[15;36H11[15;58H49[16;25H35[16;38H34[18;54H6[18;67H6
4732[43d[11;12Hlink w/ 2 Good: 6118428 Bad: 9627996[12;12Hno link Good: 5919096 Bad: 9827329[K[13;12Hlink w/ 2 Good: 6004638 Bad: 9741788[14;28H38414[14;42H708013[15;25H4[15;37H3[15;59H3[16;25H68[16;38H67[16;57H3.99[18;52H700[18;65H700
4733[43d[11;20H3[11;30H51406[11;45H85414[12;12Hlink w/ 1 Good: 5950918 Bad: 9885904[13;12Hno link Good: 6036980 Bad: 9799843[K[14;12Hlink w/ 3 Good: 6070919 Bad: 9765905[15;25H7[15;37H6[15;59H5[16;24H801[16;37H800[18;54H4[18;67H4
4734[43d[11;12Hno link Good: 6204474 Bad: 9722739[K[12;12Hno link Good: 6003286 Bad: 9923929[K[13;12Hlink w/ 4 Good: 6089703 Bad: 9837513[14;12Hno link Good: 6123681 Bad: 9803536[K[15;25H9[15;37H8[16;25H34[16;38H33[18;54H8[18;67H8
4735[43d[11;28H3246[11;43H85147[12;28H29773[12;43H8783[13;12Hno link Good: 6116732 Bad: 9900881[K[14;28H50995[14;43H66619[15;24H22[15;36H21[15;59H7[16;25H68[16;38H67[16;57H4.00[18;53H12[18;66H12
4736[43d[11;12Hlink w/ 3 Good: 6258628 Bad: 9849379[12;12Hlink w/ 4 Good: 6054881 Bad: 10053127[13;12Hlink w/ 4 Good: 6142310 Bad: 9965699[14;28H76947[14;42H931063[15;25H4[15;37H3[16;24H901[16;37H900[18;54H6[18;67H6
4737[43d[11;12Hno link Good: 6279753 Bad: 9918650[K[12;12Hno link Good: 6074359 Bad: 10124045[K[13;30H62478[13;43H10035927[14;12Hlink w/ 1 Good: 6197296 Bad: 10001110[15;25H6[15;37H5[16;25H34[16;38H33[18;53H20[18;66H20
4738[43d[11;27H303790[11;43H85008[12;12Hlink w/ 1 Good: 6097094 Bad: 10191706[13;12Hno link Good: 6185769 Bad: 10103032[K[14;12Hno link Good: 6220919 Bad: 10067883[K[15;25H9[15;37H8[15;59H9[16;25H67[16;38H66[18;54H4[18;67H4
4739[43d[11;12Hlink w/ 4 Good: 6356841 Bad: 10022353[12;29H149456[12;45H229739[13;12Hlink w/ 4 Good: 6238399 Bad: 10140798[14;28H7370[14;43H105489[15;24H31[15;36H30[16;23H6000[16;38H99[16;60H1[18;54H8[18;67H8
4740[43d[11;12Hno link Good: 6398230 Bad: 10071362[K[12;12Hno link Good: 6189603 Bad: 10279990[K[13;12Hno link Good: 6279088 Bad: 10190506[K[14;27H314453[14;44H55143[15;25H3[15;37H2[15;59H8[16;25H33[16;36H6032[18;53H32[18;66H32
4741[43d[11;27H417266[11;43H142717[12;27H207215[12;43H352769[13;28H97372[13;43H262613[14;28H33036[14;43H226950[15;25H6[15;37H5[15;59H5[16;25H66[16;38H65[16;57H3.99[18;54H6[18;67H6
4742[43d[11;12Hlink w/ 4 Good: 6449493 Bad: 10200891[12;28H38423[12;43H411962[13;12Hlink w/ 1 Good: 6328943 Bad: 10321443[14;12Hlink w/ 1 Good: 6364832 Bad: 10285555[15;25H8[15;37H7[15;59H4[16;24H100[16;38H99[18;53H40[18;66H40
4743[43d[11;20H3[11;29H502607[11;46H38176[12;12Hlink w/ 4 Good: 6290746 Bad: 10450038[13;12Hno link Good: 6381664 Bad: 10359121[K[14;12Hno link Good: 6417641 Bad: 10323146[K[15;24H41[15;36H40[15;59H7[16;25H33[16;37H132[16;57H4.00[18;54H4[18;67H4
4744[43d[11;20H4[11;30H30208[11;45H300969[12;29H316893[12;45H514286[13;12Hlink w/ 1 Good: 6408553 Bad: 10422627[14;28H44626[14;44H86555[15;25H3[15;37H2[15;59H6[16;25H66[16;38H65[18;54H8[18;67H8
4745[43d[11;12Hno link Good: 6549313 Bad: 10372258[K[12;12Hno link Good: 6334451 Bad: 10587122[K[13;12Hno link Good: 6426789 Bad: 10494785[K[14;28H63223[14;43H458352[15;25H5[15;37H4[16;25H99[16;38H98[18;53H52[18;66H52
4746[43d[11;12Hlink w/ 3 Good: 6600856 Bad: 10411113[12;28H85193[12;43H626778[13;28H77904[13;43H534068[14;27H514420[14;44H97553[15;25H8[15;37H7[15;59H8[16;24H232[16;37H231[18;54H6[18;67H6
4747[43d[11;12Hno link Good: 6648590 Bad: 10453777[K[12;12Hlink w/ 4 Good: 6432155 Bad: 10670213[13;27H525218[13;44H77151[14;28H61782[14;43H540588[15;24H50[15;37H9[16;25H65[16;38H64[18;53H60[18;66H60
4748[43d[11;28H67697[11;43H525066[12;12Hno link Good: 6449695 Bad: 10743069[K[13;28H43550[13;43H649215[14;28H8037[14;43H612395[15;25H3[15;36H52[15;58H50[16;25H99[16;38H98[16;60H1[18;54H4[18;67H4
4749[43d[11;28H98913[11;44H84241[12;12Hlink w/ 4 Good: 6479664 Bad: 10803491[13;12Hlink w/ 4 Good: 6574058 Bad: 10709099[14;12Hlink w/ 3 Good: 6611168 Bad: 10671990[15;25H5[15;37H4[16;24H332[16;37H331[18;54H8[18;67H8
4750[43d[11;12Hlink w/ 4 Good: 6752034 Bad: 10621521[12;12Hno link Good: 6531981 Bad: 10841575[K[13;12Hno link Good: 6626702 Bad: 10746855[K[14;30H63940[14;45H709619[15;25H7[15;37H6[15;58H44[16;25H65[16;38H64[16;57H3.99[18;53H72[18;66H72
4751[43d[11;12Hno link Good: 6790368 Bad: 10673581[K[12;28H6944[12;44H94509[13;28H64528[13;44H99423[14;12Hno link Good: 6701911 Bad: 10762041[K[15;24H60[15;37H9[15;59H6[16;25H98[16;38H97[18;54H6[18;67H6
4752[43d[11;27H809532[11;43H744814[12;28H86906[12;43H967442[13;28H82745[13;43H871604[14;28H20442[14;43H833908[15;25H2[15;36H61[16;24H431[16;37H430[16;57H4.00[18;53H80[18;66H80
4753[43d[11;28H54441[11;44H90300[12;12Hlink w/ 3 Good: 6630984 Bad: 11013758[13;12Hlink w/ 4 Good: 6727167 Bad: 10917577[14;12Hlink w/ 1 Good: 6765045 Bad: 10879700[15;25H4[15;37H3[15;59H5[16;25H64[16;38H63[18;54H4[18;67H4
4754[43d[11;27H907526[11;43H82761[12;12Hno link Good: 6683346 Bad: 11051791[K[13;12Hno link Good: 6779868 Bad: 10955270[K[14;12Hno link Good: 6817877 Bad: 10917262[K[15;25H7[15;37H6[15;59H8[16;25H97[16;38H96[18;54H8[18;67H8
4755[43d[11;28H2793[11;44H97595[12;27H702255[12;43H123277[13;28H99434[13;42H1026099[14;28H37535[14;44H87999[15;25H9[15;37H8[15;59H7[16;24H531[16;37H530[18;53H92[18;66H92
4756[43d[11;12Hlink w/ 3 Good: 6952519 Bad: 10963410[12;28H25601[12;44H90329[13;12Hlink w/ 4 Good: 6823279 Bad: 11092653[14;12Hlink w/ 2 Good: 6861659 Bad: 11054274[15;24H72[15;36H71[15;59H9[16;25H64[16;38H63[18;54H6[18;67H6
4757[43d[11;12Hno link Good: 7005543 Bad: 11000783[K[12;12Hlink w/ 4 Good: 6778016 Bad: 11228312[13;12Hno link Good: 6875953 Bad: 11130376[K[14;20H1[14;29H914412[14;46H91918[15;25H4[15;37H3[16;25H97[16;38H96[16;60H1[18;52H800[18;65H800
4758[43d[11;12Hlink w/ 4 Good: 7046240 Bad: 11050478[12;12Hno link Good: 6817677 Bad: 11279042[K[13;12Hlink w/ 1 Good: 6916039 Bad: 11180681[14;12Hno link Good: 6954566 Bad: 11142156[K[15;25H6[15;37H5[16;24H630[16;37H629[18;54H4[18;67H4
4759[43d[11;12Hno link Good: 7065346 Bad: 11121774[K[12;28H35333[12;43H351788[13;12Hno link Good: 6934327 Bad: 11252795[K[14;28H73082[14;43H214041[15;25H9[15;37H8[15;59H6[16;25H63[16;38H62[16;57H3.99[18;54H8[18;67H8
4760[43d[11;12Hlink w/ 4 Good: 7099233 Bad: 11178281[12;12Hlink w/ 1 Good: 6867983 Bad: 11409532[13;28H67531[13;43H30998[14;26H7006525[14;44H70992[15;24H81[15;36H80[15;59H5[16;25H96[16;38H95[18;53H12[18;66H12
4761[43d[11;12Hno link Good: 7152249 Bad: 11215661[K[12;20H4[12;29H920275[12;46H47636[13;12Hlink w/ 4 Good: 7020168 Bad: 11347744[14;12Hlink w/ 3 Good: 7059350 Bad: 11308563[15;25H3[15;37H2[16;24H729[16;37H728[16;57H4.00[18;54H6[18;67H6
4762[43d[11;28H79232[11;44H79076[12;12Hno link Good: 6945897 Bad: 11512412[K[13;12Hno link Good: 7046382 Bad: 11411928[K[14;12Hno link Good: 7085667 Bad: 11372644[K[15;25H6[15;37H5[15;59H7[16;25H63[16;38H62[18;53H20[18;66H20
4763[43d[11;12Hlink w/ 3 Good: 7206371 Bad: 11342332[12;12Hlink w/ 3 Good: 6971889 Bad: 11576815[13;28H72869[13;44H75836[14;27H112452[14;43H43625[15;25H8[15;37H7[16;25H96[16;38H95[18;54H4[18;67H4
4764[43d[11;12Hno link Good: 7226580 Bad: 11412521[K[12;12Hno link Good: 6990509 Bad: 11648593[K[13;28H92178[13;43H546925[14;28H31909[14;43H507195[15;24H91[15;36H90[15;59H9[16;24H829[16;37H828[18;54H8[18;67H8
4765[43d[11;28H5154[11;44H77955[12;12Hlink w/ 1 Good: 7014122 Bad: 11715374[13;12Hlink w/ 2 Good: 7116562 Bad: 11612936[14;28H5625[14;44H73240[15;25H3[15;37H2[15;59H8[16;25H62[16;38H61[18;53H32[18;66H32
4766[43d[11;12Hlink w/ 4 Good: 7304642 Bad: 11515251[12;12Hno link Good: 7066483 Bad: 11753410[K[13;12Hno link Good: 7169234 Bad: 11650661[K[14;12Hlink w/ 3 Good: 7209059 Bad: 11610837[15;25H5[15;37H4[16;25H95[16;38H94[16;60H1[18;54H6[18;67H6
4767[43d[11;20H3[11;30H45057[11;46H65230[12;12Hlink w/ 4 Good: 7105839 Bad: 11804450[13;27H208985[13;43H701305[14;12Hno link Good: 7249030 Bad: 11661261[K[15;25H8[15;37H7[15;59H5[16;24H928[16;37H927[16;57H3.99[18;53H40[18;66H40
4768[43d[11;12Hno link Good: 7364235 Bad: 11636449[K[12;12Hno link Good: 7123456 Bad: 11877230[K[13;28H27258[13;44H73429[14;12Hlink w/ 1 Good: 7267533 Bad: 11733155[15;23H500[15;37H9[16;25H61[16;38H60[18;54H4[18;67H4
4769[43d[11;12Hlink w/ 2 Good: 7397513 Bad: 11693567[12;28H555[12;43H935525[13;28H59839[13;43H831243[14;20H3[14;29H300257[14;46H90827[15;25H2[15;35H501[16;25H95[16;38H94[18;54H8[18;67H8
4770[43d[11;12Hno link Good: 7450602 Bad: 11730873[K[12;12Hlink w/ 4 Good: 7207891 Bad: 11973585[13;12Hlink w/ 4 Good: 7312569 Bad: 11868908[14;12Hno link Good: 7352978 Bad: 11828500[K[15;25H5[15;37H4[15;59H7[16;23H7028[16;36H7027[16;57H4.00[18;53H52[18;66H52
4771[43d[11;28H77258[11;44H94616[12;12Hno link Good: 7233251 Bad: 12038624[K[13;12Hno link Good: 7338585 Bad: 11933291[K[14;28H79062[14;44H92815[15;25H7[15;37H6[15;59H6[16;25H61[16;38H60[18;54H6[18;67H6
4772[43d[11;28H96362[11;43H865905[12;28H50969[12;43H111299[13;28H56740[13;42H2005529[14;28H97560[14;43H964711[15;24H10[15;37H9[15;59H8[16;25H94[16;38H93[18;53H60[18;66H60
4773[43d[11;12Hlink w/ 3 Good: 7548710 Bad: 11903955[12;27H30261[12;44H50047[13;12Hlink w/ 4 Good: 7408704 Bad: 12043964[14;27H449665[14;42H2003004[15;25H2[15;36H11[16;24H127[16;37H126[18;54H4[18;67H4
4774[43d[11;12Hno link Good: 7595741 Bad: 11947644[K[12;12Hlink w/ 3 Good: 7348714 Bad: 12194672[13;12Hno link Good: 7455239 Bad: 12088149[K[14;28H96242[14;44H47147[15;25H4[15;37H3[16;25H60[16;38H59[18;54H8[18;67H8
4775[43d[11;27H614919[11;42H2018866[12;12Hno link Good: 7366314 Bad: 12267472[K[13;12Hlink w/ 2 Good: 7473457 Bad: 12160330[14;27H514786[14;43H119002[15;25H7[15;37H6[15;59H9[16;25H94[16;38H93[16;60H1[18;53H72[18;66H72
4776[43d[11;12Hlink w/ 4 Good: 7647188 Bad: 12076990[12;12Hlink w/ 3 Good: 7397362 Bad: 12326817[13;29H505016[13;45H219165[14;28H46580[14;44H77601[15;25H9[15;37H8[15;59H4[16;24H227[16;37H226[16;57H3.99[18;54H6[18;67H6
4777[43d[11;20H3[11;29H700227[11;45H114348[12;29H449683[12;46H64893[13;12Hno link Good: 7557669 Bad: 12256908[K[14;28H99365[14;43H215213[15;24H21[15;36H20[16;25H60[16;38H59[18;53H80[18;66H80
4778[43d[11;12Hno link Good: 7737618 Bad: 12167351[K[12;12Hno link Good: 7486046 Bad: 12418924[K[13;28H94482[13;43H310489[14;27H636367[14;44H68606[15;25H4[15;37H3[15;59H6[16;25H93[16;38H92[18;54H4[18;67H4
4779[43d[11;28H56736[11;43H238629[12;27H503624[12;44H91742[13;27H612667[13;44H82700[14;28H54790[14;43H340578[15;25H6[15;37H5[16;24H326[16;37H325[16;57H4.00[18;54H8[18;67H8
4780[43d[11;12Hlink w/ 3 Good: 7802657 Bad: 12283104[12;12Hlink w/ 1 Good: 7548679 Bad: 12537084[13;12Hlink w/ 4 Good: 7658049 Bad: 12427715[14;12Hlink w/ 1 Good: 7700443 Bad: 12385322[15;25H9[15;37H8[15;59H8[16;25H59[16;38H58[18;53H92[18;66H92
4781[43d[11;20H2[11;30H55759[11;45H320398[12;29H601028[12;46H75131[13;29H710706[13;46H65454[14;30H53210[14;45H422951[15;24H31[15;36H30[15;59H7[16;25H92[16;38H91[18;54H6[18;67H6
4782[43d[11;12Hno link Good: 7875253 Bad: 12391303[K[12;12Hno link Good: 7618945 Bad: 12647612[K[13;12Hno link Good: 7729433 Bad: 12537126[K[14;12Hno link Good: 7772022 Bad: 12494538[K[15;25H3[15;37H2[16;24H426[16;37H425[18;52H900[18;65H900
4783[43d[11;27H900986[11;43H455968[12;12Hlink w/ 1 Good: 7643287 Bad: 12713668[13;28H54289[13;43H602667[14;28H97138[14;43H559819[15;25H6[15;37H5[15;59H9[16;25H59[16;38H58[18;54H4[18;67H4
4784[43d[11;28H5403[11;44H93311[12;20H3[12;30H95642[12;46H51706[13;12Hlink w/ 4 Good: 7806921 Bad: 12640428[14;12Hlink w/ 1 Good: 7849871 Bad: 12597480[15;25H8[15;37H7[16;25H92[16;38H91[16;60H1[18;54H8[18;67H8
4785[43d[11;28H93715[11;43H54403[12;12Hno link Good: 7734315 Bad: 12803432[K[13;12Hno link Good: 7845995 Bad: 12691753[K[14;12Hno link Good: 7889059 Bad: 12648690[K[15;24H40[15;37H9[15;59H4[16;24H525[16;37H524[16;57H3.99[18;53H12[18;66H12
4786[43d[11;26H8012867[11;43H615274[12;28H51850[12;44H7629[13;28H6430[13;43H763838[14;27H907567[14;43H720577[15;25H3[15;36H42[15;59H6[16;25H58[16;38H57[18;54H6[18;67H6
4787[43d[11;28H47808[11;44H70726[12;28H85684[12;43H932851[13;12Hlink w/ 2 Good: 7898560 Bad: 12819976[14;12Hlink w/ 3 Good: 7942033 Bad: 12776505[15;25H5[15;37H4[15;59H5[16;25H91[16;38H90[18;53H20[18;66H20
4788[43d[11;27H100881[11;43H708049[12;12Hlink w/ 1 Good: 7838059 Bad: 12970872[13;20H4[13;29H951212[13;46H57721[14;12Hno link Good: 7994795 Bad: 12814139[K[15;25H8[15;37H7[15;59H7[16;24H624[16;37H623[16;57H4.00[18;54H4[18;67H4
4789[43d[11;28H2684[11;44H72487[12;12Hno link Good: 7862579 Bad: 13036751[K[13;12Hno link Good: 7976369 Bad: 12922962[K[14;26H8020089[14;44H79243[15;24H50[15;37H9[16;25H58[16;38H57[18;54H8[18;67H8
4790[43d[11;28H55005[11;43H834721[12;12Hlink w/ 4 Good: 7889532 Bad: 13100195[13;26H8003677[13;44H86051[14;28H47897[14;43H941832[15;25H2[15;36H51[16;25H91[16;38H90[18;53H32[18;66H32
4791[43d[11;28H74104[11;43H906013[12;12Hno link Good: 7907161 Bad: 13172957[K[13;28H21938[13;42H3058182[14;12Hlink w/ 1 Good: 8066381 Bad: 13013740[15;25H5[15;37H4[15;59H8[16;24H724[16;37H723[18;54H6[18;67H6
4792[43d[11;27H200051[11;44H70465[12;12Hlink w/ 1 Good: 7931738 Bad: 13238780[13;28H47056[13;43H123463[14;12Hno link Good: 8091762 Bad: 13078758[K[15;25H7[15;37H6[16;25H57[16;38H56[18;53H40[18;66H40
4793[43d[11;12Hlink w/ 2 Good: 8253141 Bad: 13007770[12;20H4[12;30H84067[12;46H76845[13;12Hlink w/ 2 Good: 8099682 Bad: 13161232[14;27H144565[14;43H116350[15;24H60[15;37H9[15;58H50[16;25H90[16;38H89[16;60H1[18;54H4[18;67H4
4794[43d[11;20H3[11;30H92573[11;46H58731[12;12Hno link Good: 8022393 Bad: 13328912[K[13;12Hno link Good: 8138394 Bad: 13212912[K[14;28H83551[14;44H67756[15;25H2[15;36H61[15;58H45[16;24H823[16;37H822[16;57H3.99[18;54H8[18;67H8
4795[43d[11;12Hno link Good: 8311589 Bad: 13130118[K[12;12Hlink w/ 1 Good: 8040023 Bad: 13401685[13;28H56749[13;44H84960[14;27H201866[14;43H239844[15;25H4[15;37H3[16;25H56[16;38H55[18;53H52[18;66H52
4796[43d[11;12Hlink w/ 2 Good: 8346810 Bad: 13185287[12;30H74005[12;46H58093[13;12Hlink w/ 2 Good: 8191390 Bad: 13340709[14;12Hlink w/ 2 Good: 8236713 Bad: 13295387[15;25H7[15;37H6[15;59H7[16;25H90[16;38H89[16;57H4.00[18;54H6[18;67H6
4797[43d[11;12Hno link Good: 8399906 Bad: 13222592[K[12;29H126364[12;46H96135[13;20H1[13;29H244091[13;46H784[14;12Hno link Good: 8289526 Bad: 13332975[K[15;25H9[15;37H8[15;59H6[16;24H923[16;37H922[18;53H60[18;66H60
4798[43d[11;27H42559[11;44H87295[12;12Hno link Good: 8150665 Bad: 13562227[K[13;30H68980[13;45H443914[14;27H314452[14;44H98443[15;24H71[15;36H70[16;25H56[16;38H55[18;54H4[18;67H4
4799[43d[11;28H45138[11;43H358149[12;12Hlink w/ 1 Good: 8168556 Bad: 13634732[13;20H2[13;30H87413[13;45H515876[14;12Hlink w/ 3 Good: 8333402 Bad: 13469889[15;25H4[15;37H3[15;59H8[16;25H89[16;38H88[18;54H8[18;67H8
4800[43d[11;12Hlink w/ 3 Good: 8498207 Bad: 13395479[12;20H4[12;29H220880[12;46H72807[13;20H1[13;29H340125[13;46H53564[14;20H1[14;30H86175[14;45H507515[15;25H6[15;37H5[16;23H8022[16;36H8021[18;53H72[18;66H72
4801[43d[11;12Hno link Good: 8544207 Bad: 13440202[K[12;12Hno link Good: 8266017 Bad: 13718393[K[13;12Hno link Good: 8385564 Bad: 13598847[K[14;20H2[14;29H431793[14;46H52619[15;25H9[15;37H8[15;59H9[16;25H55[16;38H54[18;54H6[18;67H6
4802[43d[11;28H63318[11;43H511484[12;12Hlink w/ 4 Good: 8283658 Bad: 13791145[13;27H403795[13;43H671009[14;20H1[14;30H50372[14;45H624434[15;24H81[15;36H80[16;25H89[16;38H88[16;60H1[18;53H80[18;66H80
4803[43d[11;12Hlink w/ 4 Good: 8596479 Bad: 13568719[12;12Hno link Good: 8315722 Bad: 13849477[K[13;12Hlink w/ 1 Good: 8436321 Bad: 13728880[14;30H83177[14;46H82025[15;25H3[15;37H2[15;59H5[16;24H122[16;37H121[16;57H3.99[18;54H4[18;67H4
4804[43d[11;12Hno link Good: 8649459 Bad: 13606131[K[12;28H68035[12;44H87556[13;20H2[13;30H89004[13;46H66589[14;29H535935[14;45H719659[15;25H6[15;37H5[15;59H6[16;25H55[16;38H54[18;54H8[18;67H8
4805[43d[11;28H85933[11;44H60060[12;27H40334[12;43H942649[13;29H524772[13;45H821223[14;30H7194[14;46H74052[15;25H8[15;37H7[16;25H88[16;38H87[16;57H4.00[18;53H92[18;66H92
4806[43d[11;27H705065[11;43H731323[12;28H21031[12;42H4015358[13;20H1[13;30H42995[13;46H93396[14;12Hno link Good: 8590418 Bad: 13845973[K[15;24H90[15;37H9[16;24H221[16;37H220[18;54H6[18;67H6
4807[43d[11;12Hlink w/ 3 Good: 8751976 Bad: 13774808[12;28H67065[12;44H59720[13;12Hno link Good: 8589396 Bad: 13937391[K[14;27H637052[14;44H89736[15;25H3[15;36H92[15;59H7[16;25H54[16;38H53[18;52H10000 Good: 10000 Bad: 0
4808[43d[11;12Hno link Good: 8804387 Bad: 13812794[K[12;12Hlink w/ 4 Good: 8518669 Bad: 14098514[13;12Hlink w/ 1 Good: 8641367 Bad: 13975817[14;12Hlink w/ 3 Good: 8689036 Bad: 13928149[15;25H5[15;37H4[16;25H87[16;38H86[18;55H4[18;69H4
4809[43d[11;28H2341[11;44H84158[12;30H36268[12;45H171308[13;12Hno link Good: 8659653 Bad: 14047924[K[14;20H2[14;29H707541[14;44H4000038[15;25H8[15;37H7[15;59H9[16;24H321[16;37H320[18;55H8[18;69H8
4810[43d[11;12Hlink w/ 2 Good: 8850172 Bad: 13947802[12;20H1[12;30H61633[12;45H236342[13;12Hlink w/ 2 Good: 8685545 Bad: 14112432[14;12Hno link Good: 8733673 Bad: 14064305[K[15;23H600[15;37H9[16;25H54[16;38H53[18;54H12[18;68H12
4811[43d[11;12Hno link Good: 8903244 Bad: 13985125[K[12;20H3[12;29H613975[12;46H74395[13;20H1[13;29H738281[13;46H50091[14;12Hlink w/ 3 Good: 8786506 Bad: 14101867[15;25H2[15;35H601[15;59H8[16;25H87[16;38H86[16;60H1[18;55H6[18;69H6
4812[43d[11;12Hlink w/ 2 Good: 8941970 Bad: 14036796[12;12Hno link Good: 8651578 Bad: 14327189[K[13;12Hno link Good: 8776348 Bad: 14202420[K[14;12Hno link Good: 8824693 Bad: 14154076[K[15;25H5[15;37H4[15;59H6[16;24H420[16;37H419[16;57H3.99[18;54H20[18;68H20
4813[43d[11;12Hno link Good: 8961124 Bad: 14108040[K[12;28H69201[12;44H99964[13;28H94569[13;44H74597[14;28H43144[14;43H226023[15;25H7[15;37H6[16;25H53[16;38H52[18;55H4[18;69H4
4814[43d[11;12Hlink w/ 3 Good: 8995895 Bad: 14163659[12;12Hlink w/ 3 Good: 8702900 Bad: 14456655[13;27H828755[13;43H330801[14;28H77657[14;44H81900[15;25H9[15;37H8[15;59H5[16;25H86[16;38H85[16;57H4.00[18;55H8[18;69H8
4815[43d[11;20H2[28G9049004[11;45H20094[12;12Hno link Good: 8755226 Bad: 14494728[K[13;28H81391[13;44H68564[14;27H930442[14;43H319514[15;24H12[15;36H11[15;59H7[16;24H519[16;37H518[18;54H32[18;68H32
4816[43d[11;12Hno link Good: 9074014 Bad: 14266331[K[12;12Hlink w/ 4 Good: 8778789 Bad: 14561557[13;12Hlink w/ 1 Good: 8905587 Bad: 14434760[14;12Hlink w/ 1 Good: 8954794 Bad: 14385555[15;25H4[15;37H3[16;25H53[16;38H52[18;55H6[18;69H6
4817[43d[11;27H102271[11;43H328474[12;12Hno link Good: 8805763 Bad: 14624983[K[13;30H33042[13;46H97706[14;12Hno link Good: 8982509 Bad: 14448240[K[15;25H7[15;37H6[15;59H8[16;25H86[16;38H85[18;54H40[18;68H40
4818[43d[11;28H21508[11;44H99635[12;28H23407[12;44H97737[13;12Hno link Good: 8951329 Bad: 14569816[K[14;26H9001083[14;43H520063[15;25H9[15;37H8[16;24H619[16;37H618[18;55H4[18;69H4
4819[43d[11;28H48562[11;43H462973[12;28H49104[12;43H762432[13;12Hlink w/ 1 Good: 8977634 Bad: 14633904[14;12Hlink w/ 2 Good: 9027445 Bad: 14584094[15;24H21[15;36H20[16;25H52[16;38H51[18;55H8[18;69H8
4820[43d[11;12Hlink w/ 2 Good: 9201613 Bad: 14500318[12;12Hlink w/ 4 Good: 8901389 Bad: 14800543[13;20H2[28G9030232[13;46H71701[14;12Hno link Good: 9080201 Bad: 14621733[K[15;25H4[15;37H3[15;59H9[16;25H85[16;38H84[16;60H1[18;54H52[18;68H52
4821[43d[11;12Hno link Good: 9239987 Bad: 14552339[K[12;12Hno link Good: 8938731 Bad: 14853596[K[13;20H1[13;30H67990[13;45H724339[14;27H118143[14;44H74187[15;25H6[15;37H5[15;59H5[16;24H718[16;37H717[16;57H3.99[18;55H6[18;69H6
4822[43d[11;28H59072[11;43H623655[12;12Hlink w/ 4 Good: 8956229 Bad: 14926499[13;12Hno link Good: 9086196 Bad: 14796534[K[14;28H36600[14;43H746131[15;25H8[15;37H7[16;25H51[16;38H50[18;54H60[18;68H60
4823[43d[11;28H95331[11;44H77789[12;12Hno link Good: 8991316 Bad: 14981805[K[13;27H121738[13;43H851385[14;12Hlink w/ 1 Good: 9172378 Bad: 14800746[15;24H31[15;36H30[15;59H7[16;25H85[16;38H84[16;57H4.00[18;55H4[18;69H4
4824[43d[11;12Hlink w/ 4 Good: 9348465 Bad: 14715054[12;12Hlink w/ 1 Good: 9043599 Bad: 15019921[13;12Hlink w/ 4 Good: 9174433 Bad: 14889089[14;20H3[14;29H225177[14;46H383[15;25H3[15;37H2[15;59H6[16;24H818[16;37H817[18;55H8[18;69H8
4825[43d[11;20H2[11;30H73151[11;46H8076[12;12Hno link Good: 9066892 Bad: 15087024[K[13;20H1[13;30H98281[13;45H955637[14;12Hno link Good: 9249097 Bad: 14904822[K[15;25H6[15;37H5[15;59H8[16;25H51[16;38H50[18;54H72[18;68H72
4826[43d[11;12Hno link Good: 9393468 Bad: 14850841[K[12;12Hlink w/ 1 Good: 9085790 Bad: 15158520[13;12Hno link Good: 9217939 Bad: 15026372[K[14;28H68828[14;44H75485[15;25H8[15;37H7[16;25H84[16;38H83[18;55H6[18;69H6
4827[43d[11;27H446525[11;44H88182[12;12Hno link Good: 9138118 Bad: 15196591[K[13;12Hlink w/ 1 Good: 9270596 Bad: 15064114[14;27H32155[14;42H5013153[15;24H40[15;37H9[15;59H7[16;24H917[16;37H916[18;54H80[18;68H80
4828[43d[11;12Hlink w/ 4 Good: 9491503 Bad: 14933601[12;28H82125[12;43H242980[13;12Hno link Good: 9314976 Bad: 15110130[K[14;12Hlink w/ 1 Good: 9365970 Bad: 15059137[15;25H3[15;36H42[15;59H9[16;25H50[16;38H49[18;55H4[18;69H4
4829[43d[11;12Hno link Good: 9510623 Bad: 15004876[K[12;28H99723[12;43H315777[13;28H33223[13;44H82279[14;12Hno link Good: 9384469 Bad: 15131034[K[15;25H5[15;37H4[16;25H83[16;38H82[16;60H1[18;55H8[18;69H8
4830[43d[11;28H44702[11;44H61192[12;27H232758[12;44H73138[13;12Hlink w/ 1 Good: 9366595 Bad: 15239302[14;27H418107[14;44H87791[15;25H7[15;37H6[15;59H5[16;23H9017[16;36H9016[16;57H3.99[18;54H92[18;68H92
4831[43d[11;28H97810[11;44H98481[12;12Hlink w/ 3 Good: 9285133 Bad: 15411159[13;12Hno link Good: 9419277 Bad: 15277017[K[14;28H70938[14;43H225357[15;24H50[15;37H9[15;59H6[16;25H50[16;38H49[16;57H4.00[18;55H6[18;69H6
4832[43d[11;12Hlink w/ 3 Good: 9633426 Bad: 15153260[12;12Hno link Good: 9319586 Bad: 15467101[K[13;28H54271[13;43H3324[14;27H506027[14;44H80662[15;25H2[15;36H51[16;25H83[16;38H82[18;53H100[18;67H100
4833[43d[11;12Hno link Good: 9652483 Bad: 15224601[K[12;28H37242[12;43H539844[13;28H72456[13;43H404631[14;28H24536[14;43H35255[15;25H5[15;37H4[15;59H7[16;24H116[16;37H115[18;55H4[18;69H4
4834[43d[11;27H700345[11;44H67135[12;12Hlink w/ 1 Good: 9384215 Bad: 15583267[13;12Hlink w/ 2 Good: 9519830 Bad: 15447653[14;12Hlink w/ 3 Good: 9572105 Bad: 15395379[15;25H7[15;37H6[16;25H49[16;38H48[18;55H8[18;69H8
4835[43d[11;28H51814[11;43H306063[12;12Hno link Good: 9434879 Bad: 15622999[K[13;30H70894[13;46H86986[14;12Hno link Good: 9623142 Bad: 15434738[K[15;25H9[15;37H8[16;25H82[16;38H81[18;54H12[18;68H12
4836[43d[11;12Hlink w/ 4 Good: 9770821 Bad: 15377452[12;28H5246[12;44H95805[13;12Hno link Good: 9589134 Bad: 15559141[K[14;28H41701[14;43H506576[15;24H62[15;36H61[15;59H8[16;24H216[16;37H215[18;55H6[18;69H6
4837[43d[11;12Hno link Good: 9798320 Bad: 15440349[K[12;28H78796[12;43H759874[13;12Hlink w/ 2 Good: 9615940 Bad: 15622731[14;28H68802[14;44H69870[15;25H4[15;37H3[16;25H49[16;38H48[18;54H20[18;68H20
4838[43d[11;12Hlink w/ 4 Good: 9851450 Bad: 15477615[12;12Hlink w/ 1 Good: 9531143 Bad: 15797923[13;20H1[13;30H68661[13;46H60406[14;27H721499[14;43H607569[15;25H7[15;37H6[15;58H50[16;25H82[16;38H81[16;60H1[18;55H4[18;69H4
4839[43d[11;20H2[11;30H89258[11;45H530201[12;12Hno link Good: 9567734 Bad: 15851727[K[13;12Hno link Good: 9705884 Bad: 15713578[K[14;28H58755[14;44H60708[15;25H9[15;37H8[15;58H46[16;24H315[16;37H314[16;57H3.99[18;55H8[18;69H8
4840[43d[11;12Hno link Good: 9908425 Bad: 15601431[K[12;28H8537[12;43H924483[13;28H24137[13;44H85722[14;28H773[14;43H732505[15;24H71[15;36H70[16;25H48[16;38H47[16;57H4.00[18;54H32[18;68H32
4841[43d[11;12Hlink w/ 2 Good: 9945291 Bad: 15654960[12;27H621113[12;44H79139[13;28H60375[13;43H839878[14;12Hlink w/ 2 Good: 9813778 Bad: 15786476[15;25H4[15;37H3[15;59H7[16;25H81[16;38H80[18;55H6[18;69H6
4842[43d[11;20H3[11;30H98279[11;46H92363[12;28H73478[12;42H6017165[13;12Hlink w/ 2 Good: 9813094 Bad: 15877551[14;12Hno link Good: 9866522 Bad: 15824124[K[15;25H6[15;37H5[16;24H414[16;37H413[18;54H40[18;68H40
4843[43d[11;28H10022393 Bad: 15758654[12;28H96136[12;44H84912[13;12Hno link Good: 9836393 Bad: 15944656[K[14;28H89970[14;44H91080[15;25H8[15;37H7[16;25H48[16;38H47[18;55H4[18;69H4
4844[43d[11;12Hno link Good: 10050689 Bad: 15820744[K[12;27H723060[12;43H148374[13;28H63806[13;42H6007629[14;27H917648[14;43H953789[15;24H81[15;36H80[15;59H8[16;25H81[16;38H80[18;55H8[18;69H8
4845[43d[11;29H69655[11;45H92183[12;28H40802[12;43H221037[13;28H82110[13;44H79730[14;28H3622[14;42H6025613[15;25H3[15;37H2[16;24H514[16;37H513[18;54H52[18;68H52
4846[43d[11;12Hlink w/ 4 Good: 10097764 Bad: 15954794[12;28H67440[12;44H85119[13;27H909402[13;43H143158[14;12Hlink w/ 2 Good: 9963832 Bad: 16088730[15;25H6[15;37H5[15;59H9[16;25H47[16;38H46[18;55H6[18;69H6
4847[43d[11;20H3[11;30H150876[11;47H9207[12;27H819748[12;43H323204[13;28H62068[13;44H80885[14;20H3[28G10016637 Bad: 16126317[15;25H8[15;37H7[16;25H80[16;38H79[16;60H1[18;54H60[18;68H60
4848[43d[11;20H2[11;31H88339[11;45H6045011[12;28H56031[12;44H77320[13;28H98775[13;43H234578[14;20H1[14;31H53478[14;47H79876[15;24H90[15;37H9[15;59H5[16;24H613[16;37H612[16;57H3.99[18;55H4[18;69H4
4849[43d[11;12Hno link Good: 10207449 Bad: 16116299[K[12;28H73689[12;43H45006[13;12Hlink w/ 1 Good: 10017012 Bad: 16306738[14;31H71991[14;46H251760[15;25H3[15;36H92[15;59H7[16;25H47[16;38H46[16;57H4.00[18;55H8[18;69H8
4850[43d[11;12Hlink w/ 3 Good: 10244563 Bad: 16169581[12;27H90987[12;43H504266[13;12Hno link Good: 10053708 Bad: 16360438[K[14;20H3[14;30H108778[14;46H305369[15;25H5[15;37H4[15;59H6[16;25H80[16;38H79[18;54H72[18;68H72
4851[43d[11;20H4[11;31H97585[11;46H206955[12;12Hlink w/ 3 Good: 9962226 Bad: 16542315[13;12Hlink w/ 4 Good: 10106407 Bad: 16398136[14;12Hno link Good: 10161515 Bad: 16343029[K[15;25H7[15;37H6[16;24H713[16;37H712[18;55H6[18;69H6
4852[43d[11;12Hno link Good: 10321417 Bad: 16273517[K[12;12Hno link Good: 9984462 Bad: 16610473[K[13;12Hno link Good: 10129258 Bad: 16465678[K[14;29H84567[14;44H410370[15;23H700[15;37H9[15;59H8[16;25H46[16;38H45[18;54H80[18;68H80
4853[43d[11;29H42819[11;44H342513[12;12Hlink w/ 4 Good: 10004501 Bad: 16680832[13;12Hlink w/ 2 Good: 10149964 Bad: 16535371[14;12Hlink w/ 1 Good: 10205370 Bad: 16479966[15;25H2[15;35H701[15;59H7[16;25H79[16;38H78[18;55H4[18;69H4
4854[43d[11;29H95887[11;45H79839[12;20H1[12;31H56864[12;46H718863[13;30H202623[13;47H73105[14;20H3[14;31H58199[14;46H517531[15;25H5[15;37H4[15;59H9[16;24H812[16;37H811[18;55H8[18;69H8
4855[43d[11;28H439876[11;44H426248[12;12Hno link Good: 10099786 Bad: 16766340[K[13;12Hno link Good: 10246045 Bad: 16620082[K[14;20H2[14;30H301694[14;47H64434[15;25H7[15;37H6[16;25H45[16;38H44[18;54H92[18;68H92
4856[43d[11;12Hlink w/ 2 Good: 10458957 Bad: 16497561[12;28H117330[12;44H839189[13;29H64350[13;45H92170[14;12Hno link Good: 10320247 Bad: 16636274[K[15;25H9[15;37H8[15;59H8[16;25H79[16;38H78[16;60H1[18;55H6[18;69H6
4857[43d[11;12Hno link Good: 10494120 Bad: 16552794[K[12;12Hlink w/ 3 Good: 10151355 Bad: 16895561[13;12Hlink w/ 4 Good: 10298765 Bad: 16748152[14;12Hlink w/ 3 Good: 10354959 Bad: 16691959[15;24H12[15;36H11[15;59H6[16;24H912[16;37H911[16;57H3.99[18;53H200[18;67H200
4858[43d[11;28H547211[11;45H90102[12;30H203614[12;46H93370[13;30H351474[13;47H8584[14;20H2[14;30H407804[14;46H729513[15;25H4[15;37H3[16;25H45[16;38H44[16;57H4.00[18;55H4[18;69H4
4859[43d[11;12Hlink w/ 4 Good: 10582639 Bad: 16645070[12;12Hno link Good: 10237972 Bad: 16989738[K[13;20H1[13;31H86362[13;46H841349[14;12Hno link Good: 10442816 Bad: 16784896[K[15;25H6[15;37H5[16;25H78[16;38H77[18;55H8[18;69H8
4860[43d[11;20H3[11;30H601826[11;46H716279[12;29H55608[12;43H706249[13;12Hno link Good: 10404659 Bad: 16913449[K[14;12Hlink w/ 2 Good: 10461352 Bad: 16856757[15;25H9[15;37H8[15;59H7[16;23H10011 Good: 10010 Bad: 0 B/W: 4.00 Gbps[18;54H12[18;68H12
4861[43d[11;12Hno link Good: 10650701 Bad: 16757802[K[12;12Hlink w/ 4 Good: 10303666 Bad: 17104838[13;12Hlink w/ 4 Good: 10453117 Bad: 16955388[14;12Hno link Good: 10509899 Bad: 16898608[K[15;24H21[15;36H20[16;26H44[16;40H43[18;55H6[18;69H6
4862[43d[11;28H701215[11;45H97681[12;12Hno link Good: 10353312 Bad: 17145585[K[13;12Hno link Good: 10503147 Bad: 16995752[K[14;29H59992[14;44H9389[15;25H4[15;37H3[15;59H8[16;26H77[16;40H76[18;54H20[18;68H20
4863[43d[11;12Hlink w/ 4 Good: 10720374 Bad: 16868920[12;12Hlink w/ 3 Good: 10370980 Bad: 17218315[13;29H21272[13;43H7068024[14;12Hlink w/ 1 Good: 10578433 Bad: 17010864[15;25H6[15;37H5[16;25H111[16;39H110[18;55H4[18;69H4
4864[43d[11;20H3[11;31H48980[11;46H930703[12;20H4[12;31H98286[12;47H81398[13;12Hlink w/ 1 Good: 10549045 Bad: 17130640[14;20H2[14;30H606458[14;47H73228[15;25H8[15;37H7[16;26H44[16;40H43[18;55H8[18;69H8
4865[43d[11;12Hno link Good: 10802138 Bad: 16967949[K[12;12Hno link Good: 10450642 Bad: 17319446[K[13;12Hno link Good: 10601751 Bad: 17168338[K[14;20H1[14;31H59250[14;46H110841[15;24H31[15;36H30[15;59H9[16;26H77[16;40H76[16;62H1[18;54H32[18;68H32
4866[43d[11;29H38866[11;43H7021614[12;29H86310[12;45H74172[13;29H37820[13;44H222663[14;12Hno link Good: 10695529 Bad: 17164955[K[15;25H3[15;37H2[15;59H6[16;25H210[16;39H209[16;59H3.99[18;55H6[18;69H6
4867[43d[11;29H57938[11;45H92939[12;28H503927[12;44H446951[13;29H56142[13;45H94737[14;28H713951[14;44H236930[15;25H5[15;37H4[16;26H43[16;40H42[16;59H4.00[18;54H40[18;68H40
4868[43d[11;12Hlink w/ 3 Good: 10895942 Bad: 17145330[12;29H40785[12;44H500488[13;12Hlink w/ 2 Good: 10693483 Bad: 17347792[14;12Hlink w/ 1 Good: 10751542 Bad: 17289734[15;25H8[15;37H7[15;59H7[16;26H76[16;40H75[18;55H4[18;69H4
4869[43d[11;30H949015[11;47H82652[12;12Hlink w/ 1 Good: 10593086 Bad: 17538583[13;12Hno link Good: 10746129 Bad: 17385541[K[14;20H2[14;30H804348[14;46H327323[15;24H40[15;37H9[16;25H309[16;39H308[18;55H8[18;69H8
4870[43d[11;12Hno link Good: 10972086 Bad: 17249981[K[12;30H614782[12;46H607287[13;29H68365[13;44H453705[14;12Hno link Good: 10826798 Bad: 17395273[K[15;25H3[15;36H42[15;59H8[16;26H43[16;40H42[18;54H52[18;68H52
4871[43d[11;27H1000261[11;44H312203[12;20H4[12;31H41774[12;47H70692[13;29H95748[13;44H516719[14;29H54516[14;44H457952[15;25H5[15;37H4[16;26H76[16;40H75[18;55H6[18;69H6
4872[43d[11;29H19543[11;45H83317[12;12Hno link Good: 10659403 Bad: 17743459[K[13;28H814016[13;45H88847[14;29H7295[14;44H529908[15;25H7[15;37H6[16;25H409[16;39H408[18;54H60[18;68H60
4873[43d[11;29H48302[11;44H44494[12;29H87010[12;44H806241[13;12Hlink w/ 2 Good: 10842074 Bad: 17651178[14;28H901278[14;45H91975[15;24H50[15;37H9[15;59H9[16;26H42[16;40H41[18;55H4[18;69H4
4874[43d[11;28H101444[11;45H8220[12;28H739377[12;45H44275[13;20H1[13;31H94789[13;47H88864[14;29H54017[14;44H629637[15;25H2[15;36H51[16;26H75[16;40H74[16;62H1[18;55H8[18;69H8
4875[43d[11;29H37957[11;44H536089[12;29H74814[12;45H99233[13;30H930646[13;46H743402[14;29H90030[14;45H84019[15;25H4[15;37H3[15;59H5[16;25H508[16;39H507[16;59H3.99[18;54H72[18;68H72
4876[43d[11;29H57145[11;44H607297[12;29H92463[12;44H971980[13;12Hno link Good: 10948958 Bad: 17815486[K[14;12Hlink w/ 2 Good: 11008534 Bad: 17755911[15;25H7[15;37H6[15;59H7[16;26H41[16;40H40[16;59H4.00[18;55H6[18;69H6
4877[43d[11;12Hlink w/ 2 Good: 11195268 Bad: 17659572[12;28H829524[12;43H8025317[13;12Hlink w/ 4 Good: 10986426 Bad: 17868416[14;12Hno link Good: 11046271 Bad: 17808572[K[15;25H9[15;37H8[15;59H6[16;26H75[16;40H74[18;54H80[18;68H80
4878[43d[11;20H4[11;30H248314[11;47H96919[12;29H8185[12;45H63381[13;29H1039078[13;46H906158[14;12Hlink w/ 2 Good: 11099072 Bad: 17846165[15;24H62[15;36H61[15;59H8[16;25H608[16;39H607[18;55H4[18;69H4
4879[43d[11;12Hno link Good: 11271194 Bad: 17764438[K[12;28H903245[12;44H132389[13;12Hno link Good: 11061022 Bad: 17974613[K[14;12Hno link Good: 11121246 Bad: 17914390[K[15;25H4[15;37H3[15;59H7[16;26H41[16;40H40[18;55H8[18;69H8
4880[43d[11;12Hlink w/ 2 Good: 11293443 Bad: 17832584[12;12Hlink w/ 1 Good: 10924100 Bad: 18201928[13;12Hlink w/ 1 Good: 11082506 Bad: 18043524[14;29H4308[14;45H82945[15;25H6[15;37H5[16;26H74[16;40H73[18;54H92[18;68H92
4881[43d[11;12Hno link Good: 11346487 Bad: 17869937[K[12;31H76496[12;47H39929[13;12Hno link Good: 11135201 Bad: 18081225[K[14;29H95871[14;43H8020556[15;25H9[15;37H8[15;59H9[16;25H707[16;39H706[18;55H6[18;69H6
4882[43d[11;12Hlink w/ 3 Good: 11389564 Bad: 17917257[12;12Hno link Good: 11018578 Bad: 18288244[K[13;12Hlink w/ 2 Good: 11177642 Bad: 18129181[14;28H238438[14;45H68387[15;24H71[15;36H70[15;59H8[16;26H40[16;40H39[18;53H300[18;67H300
4883[43d[11;12Hno link Good: 11408786 Bad: 17988428[K[12;29H36061[12;44H36115[13;12Hno link Good: 11195882 Bad: 18201334[K[14;12Hlink w/ 3 Good: 11257023 Bad: 18140195[15;25H4[15;37H3[15;59H6[16;26H73[16;40H72[16;59H3.99[18;55H4[18;69H4
4884[43d[11;29H44750[11;43H8042861[12;12Hlink w/ 1 Good: 11070964 Bad: 18416648[13;12Hlink w/ 4 Good: 11231230 Bad: 18256384[14;12Hno link Good: 11292691 Bad: 18194923[K[15;25H6[15;37H5[16;25H807[16;39H806[16;59H4.00[18;55H8[18;69H8
4885[43d[11;12Hlink w/ 2 Good: 11497839 Bad: 18080170[12;12Hno link Good: 11123211 Bad: 18454799[K[13;20H2[13;31H83909[13;47H94102[14;28H345450[14;44H23256[15;25H8[15;37H7[16;26H40[16;40H39[18;54H12[18;68H12
4886[43d[11;12Hno link Good: 11532479 Bad: 18135927[K[12;29H56676[12;44H511731[13;12Hno link Good: 11317891 Bad: 18350517[K[14;29H79539[14;45H88870[15;24H81[15;36H80[15;59H7[16;26H73[16;40H72[18;55H6[18;69H6
4887[43d[11;29H51582[11;44H20721[12;29H74228[12;45H84573[13;29H36165[13;44H42263[14;29H97998[14;44H360805[15;25H3[15;37H2[16;25H906[16;39H905[18;54H20[18;68H20
4888[43d[11;12Hlink w/ 4 Good: 11601213 Bad: 18247984[12;28H22317[12;44H626020[13;29H85466[13;45H63733[14;28H447509[14;44H401691[15;25H5[15;37H4[16;26H39[16;40H38[18;55H4[18;69H4
4889[43d[11;12Hno link Good: 11650834 Bad: 18288757[K[12;29H71927[12;45H67665[13;28H434613[13;44H504980[14;12Hlink w/ 3 Good: 11496712 Bad: 18442883[15;25H8[15;37H7[15;59H8[16;26H72[16;40H71[18;55H8[18;69H8
4890[43d[11;29H69862[11;44H36012[12;12Hlink w/ 3 Good: 11289469 Bad: 18740521[13;29H52872[13;45H7712[14;30H515256[14;46H514737[15;24H90[15;37H9[16;24H1005[16;38H1004[18;54H32[18;68H32
4891[43d[11;12Hlink w/ 2 Good: 11699284 Bad: 18421102[12;12Hno link Good: 11317699 Bad: 18802688[K[13;12Hlink w/ 4 Good: 11481654 Bad: 18638735[14;20H2[14;31H44275[14;47H76115[15;25H3[15;36H92[15;59H9[16;26H39[16;40H38[18;55H6[18;69H6
4892[43d[11;30H752406[11;47H58375[12;12Hlink w/ 1 Good: 11370021 Bad: 18840762[13;30H534358[13;47H76426[14;12Hno link Good: 11597095 Bad: 18613690[K[15;25H5[15;37H4[15;59H6[16;26H72[16;40H71[16;59H3.99[18;54H40[18;68H40
4893[43d[11;20H4[11;31H88288[11;46H512890[12;20H3[12;30H404727[12;47H9645[13;12Hno link Good: 11569624 Bad: 18731556[K[14;28H632521[14;45H6866[15;25H7[15;37H6[16;25H105[16;39H104[16;59H4.00[18;55H4[18;69H4
4894[43d[11;20H3[11;30H807399[11;47H84171[12;12Hno link Good: 11422317 Bad: 18969254[K[13;29H87895[13;44H803677[14;12Hlink w/ 3 Good: 11651024 Bad: 18740549[15;23H800[15;37H9[15;59H7[16;26H38[16;40H37[18;55H8[18;69H8
4895[43d[11;12Hno link Good: 11846210 Bad: 18635760[K[12;29H60050[12;43H9021921[13;12Hlink w/ 1 Good: 11626136 Bad: 18855837[14;12Hno link Good: 11689393 Bad: 18792581[K[15;25H2[15;35H801[16;26H71[16;40H70[18;54H52[18;68H52
4896[43d[11;29H99297[11;45H73068[12;12Hlink w/ 3 Good: 11512398 Bad: 19059969[13;20H4[13;31H78868[13;47H93500[14;28H742165[14;44H830204[15;25H4[15;37H3[16;25H204[16;39H203[18;55H6[18;69H6
4897[43d[11;28H921569[11;44H741192[12;12Hno link Good: 11533181 Bad: 19129581[K[13;12Hno link Good: 11700211 Bad: 18962553[K[14;29H63740[14;45H99025[15;25H7[15;37H6[15;59H8[16;26H37[16;40H36[18;54H60[18;68H60
4898[43d[11;12Hlink w/ 3 Good: 11949656 Bad: 18803501[12;29H60126[12;45H93033[13;29H27646[13;43H9025514[14;29H9137[14;44H961791[15;25H9[15;37H8[16;26H71[16;40H70[18;55H4[18;69H4
4899[43d[11;12Hno link Good: 11968667 Bad: 18874886[K[12;29H7763[12;44H265918[13;29H45878[13;45H97678[14;28H809778[14;43H9033779[15;24H12[15;36H11[15;59H9[16;25H304[16;39H303[18;55H8[18;69H8
4900[43d[11;12Hlink w/ 3 Good: 11998422 Bad: 18935527[12;12Hlink w/ 1 Good: 11606107 Bad: 19327843[13;29H74897[13;44H159054[14;12Hlink w/ 1 Good: 11839035 Bad: 19094917[15;25H4[15;37H3[16;26H37[16;40H36[18;54H72[18;68H72
4901[43d[11;20H4[11;29H2051554[11;47H72794[12;20H4[12;31H58365[12;47H65984[13;12Hlink w/ 4 Good: 11827528 Bad: 19196822[14;20H3[14;31H91857[14;46H132494[15;25H6[15;37H5[15;59H5[16;26H70[16;40H69[16;59H3.99[18;55H6[18;69H6
4902[43d[11;31H87123[11;45H9027620[12;12Hno link Good: 11692762 Bad: 19421982[K[13;20H2[13;31H62481[13;46H252265[14;12Hno link Good: 11926897 Bad: 19187850[K[15;25H9[15;37H8[15;59H7[16;25H403[16;39H402[16;59H4.00[18;54H80[18;68H80
4903[43d[11;12Hno link Good: 12106250 Bad: 19098890[K[12;12Hlink w/ 3 Good: 11710481 Bad: 19494660[13;20H4[13;31H80855[13;46H324287[14;29H452[14;44H259846[15;24H21[15;36H20[15;59H6[16;26H36[16;40H35[18;55H4[18;69H4
4904[43d[11;29H45218[11;44H150317[12;20H1[12;31H48397[12;46H54714[13;12Hno link Good: 11919171 Bad: 19376367[K[14;29H83839[14;44H311700[15;25H3[15;37H2[16;26H69[16;40H68[18;55H8[18;69H8
4905[43d[11;12Hlink w/ 2 Good: 12198329 Bad: 19187602[12;12Hno link Good: 11800756 Bad: 19585176[K[13;29H71876[13;44H414058[14;27H2036631[14;45H49304[15;25H6[15;37H5[15;59H7[16;25H503[16;39H502[18;54H92[18;68H92
4906[43d[11;12Hno link Good: 12220329 Bad: 19255997[K[12;29H21152[12;44H655175[13;29H93057[13;45H83271[14;29H57870[14;44H418460[15;25H8[15;37H7[16;26H36[16;40H35[18;55H6[18;69H6
4907[43d[11;29H43390[11;44H323335[12;12Hlink w/ 3 Good: 11842990 Bad: 19723736[13;27H2015415[13;44H551312[14;12Hlink w/ 3 Good: 12080526 Bad: 19486202[15;24H31[15;36H30[15;59H8[16;26H69[16;40H68[18;53H400[18;67H400
4908[43d[11;12Hlink w/ 2 Good: 12296446 Bad: 19360674[12;20H1[12;31H95366[12;47H61755[13;29H68099[13;45H89023[14;30H133279[14;46H523844[15;25H3[15;37H2[16;25H602[16;39H601[18;55H4[18;69H4
4909[43d[11;12Hno link Good: 12338637 Bad: 19409203[K[12;12Hno link Good: 11936605 Bad: 19811236[K[13;28H109770[13;44H63807[14;12Hno link Good: 12175012 Bad: 19572832[K[15;25H5[15;37H4[16;26H35[16;40H34[18;55H8[18;69H8
4910[43d[11;29H57895[11;45H80342[12;12Hlink w/ 3 Good: 11954142 Bad: 19884096[13;12Hlink w/ 4 Good: 12128043 Bad: 19710197[14;29H93477[14;44H644764[15;25H8[15;37H7[15;59H6[16;26H68[16;40H67[16;59H3.99[18;54H12[18;68H12
4911[43d[11;12Hlink w/ 2 Good: 12394859 Bad: 19533775[12;20H1[12;31H89990[12;46H93864[13;20H2[13;31H64385[13;47H64252[14;12Hlink w/ 2 Good: 12230017 Bad: 19698621[15;24H40[15;37H9[16;25H702[16;39H701[16;59H4.00[18;55H6[18;69H6
4912[43d[11;12Hno link Good: 12447902 Bad: 19571127[K[12;20H3[12;29H2042305[12;47H7672[13;20H1[13;30H217036[13;46H801996[14;12Hno link Good: 12282791 Bad: 19736242[K[15;25H2[15;36H41[16;26H35[16;40H34[18;54H20[18;68H20
4913[43d[11;12Hlink w/ 3 Good: 12480689 Bad: 19628738[12;12Hno link Good: 12073936 Bad: 20035492[K[13;12Hno link Good: 12249197 Bad: 19860232[K[14;12Hlink w/ 3 Good: 12314975 Bad: 19794456[15;25H5[15;37H4[15;59H7[16;26H68[16;40H67[18;55H4[18;69H4
4914[43d[11;12Hno link Good: 12499833 Bad: 19699988[K[12;29H91534[12;44H108289[13;29H67563[13;44H932261[14;12Hno link Good: 12333443 Bad: 19866382[K[15;25H7[15;37H6[16;25H801[16;39H800[18;55H8[18;69H8
4915[43d[11;12Hlink w/ 3 Good: 12550526 Bad: 19739693[12;28H141478[12;45H48742[13;28H31783[13;45H72388[14;12Hlink w/ 1 Good: 12383776 Bad: 19906447[15;24H50[15;37H9[15;59H8[16;26H34[16;40H33[18;54H32[18;68H32
4916[43d[11;12Hno link Good: 12599130 Bad: 19781478[K[12;29H89183[12;45H91426[13;29H65946[13;42H20014664[14;12Hno link Good: 12431952 Bad: 19948659[K[15;25H2[15;36H51[16;26H67[16;40H66[18;55H6[18;69H6
4917[43d[11;28H618298[11;44H852711[12;28H206708[12;44H264302[13;29H84138[13;45H8687[14;29H50499[14;42H20020514[15;25H4[15;37H3[16;25H900[16;40H99[18;54H40[18;68H40
4918[43d[11;12Hlink w/ 2 Good: 12648711 Bad: 19912696[12;29H35954[12;44H325454[13;28H413770[13;44H147639[14;29H80540[14;45H80870[15;25H7[15;37H6[15;59H9[16;26H34[16;39H933[18;55H4[18;69H4
4919[43d[11;12Hno link Good: 12701819 Bad: 19949983[K[12;12Hlink w/ 1 Good: 12288329 Bad: 20363475[13;29H66486[13;45H8531[14;28H533297[14;44H118509[15;25H9[15;37H8[15;59H6[16;26H67[16;40H66[18;55H8[18;69H8
4920[43d[11;29H36765[11;42H20005435[12;12Hno link Good: 12322057 Bad: 20420144[K[13;28H50067[13;44H241526[14;29H67626[14;45H74578[15;24H61[15;36H60[16;24H2000[16;40H99[18;54H52[18;68H52
4921[43d[11;29H55898[11;45H76700[12;29H39658[12;45H92941[13;29H18879[13;44H313722[14;29H86131[14;44H246471[15;25H4[15;37H3[15;59H7[16;26H33[16;38H2032[18;55H6[18;69H6
4922[43d[11;12Hlink w/ 3 Good: 12795853 Bad: 20127463[12;12Hlink w/ 3 Good: 12378537 Bad: 20544780[13;12Hlink w/ 4 Good: 12558189 Bad: 20365130[14;12Hlink w/ 2 Good: 12625705 Bad: 20297615[15;25H6[15;37H5[16;26H66[16;40H65[18;54H60[18;68H60
4923[43d[11;12Hno link Good: 12848935 Bad: 20164778[K[12;20H4[12;30H430878[12;47H82836[13;30H610834[13;46H402882[14;20H1[14;31H7853[14;46H335181[15;25H9[15;37H8[15;59H8[16;26H99[16;40H98[18;55H4[18;69H4
4924[43d[11;29H70194[11;44H233915[12;31H50350[12;46H653760[13;12Hno link Good: 12631103 Bad: 20473009[K[14;12Hno link Good: 12698962 Bad: 20405151[K[15;24H71[15;36H70[16;25H133[16;39H132[18;55H8[18;69H8
4925[43d[11;29H98233[11;45H96273[12;12Hno link Good: 12477376 Bad: 20717131[K[13;29H58551[13;44H535957[14;28H726629[14;45H67880[15;25H3[15;37H2[15;59H7[16;26H66[16;40H65[18;54H72[18;68H72
4926[43d[11;28H917450[11;44H367454[12;29H95038[12;45H89867[13;29H76820[13;44H608086[14;29H45207[14;44H53970[15;25H6[15;37H5[15;59H9[16;26H99[16;40H98[18;55H6[18;69H6
4927[43d[11;29H4843[11;44H426865[12;28H524764[12;44H850533[13;28H706964[13;45H68334[14;29H75712[14;45H99587[15;25H8[15;37H7[15;59H8[16;25H232[16;39H231[18;54H80[18;68H80
4928[43d[11;12Hlink w/ 2 Good: 13001480 Bad: 20464213[12;29H77092[12;45H88602[13;29H59653[13;44H706042[14;28H828545[14;44H637151[15;24H81[15;36H80[15;59H7[16;26H65[16;40H64[18;55H4[18;69H4
4929[43d[11;12Hno link Good: 13035967 Bad: 20520124[K[12;28H610450[12;44H94564[13;29H93456[13;45H62637[14;29H62391[14;45H93703[15;25H3[15;37H2[16;26H98[16;40H97[18;55H8[18;69H8
4930[43d[11;12Hlink w/ 3 Good: 13055127 Bad: 20591359[12;29H28176[12;43H1018311[13;28H811694[13;44H834794[14;12Hlink w/ 1 Good: 12880893 Bad: 20765597[15;25H5[15;37H4[15;59H6[16;25H331[16;39H330[18;54H92[18;68H92
4931[43d[11;12Hno link Good: 13094527 Bad: 20643004[K[12;29H66571[12;45H7096[13;12Hlink w/ 2 Good: 12850499 Bad: 20887035[14;20H3[14;30H919979[14;46H817556[15;25H8[15;37H7[15;59H7[16;26H65[16;40H64[18;55H6[18;69H6
4932[43d[11;12Hlink w/ 2 Good: 13147566 Bad: 20680361[12;12Hlink w/ 1 Good: 12718932 Bad: 21108997[13;20H1[13;30H903167[13;46H924763[14;20H2[14;31H72752[14;47H55179[15;24H90[15;37H9[16;26H98[16;40H97[18;53H500[18;67H500
4933[43d[11;12Hno link Good: 13168135 Bad: 20750188[K[12;12Hno link Good: 12738089 Bad: 21180235[K[13;12Hno link Good: 12922870 Bad: 20995455[K[14;20H3[14;31H92527[14;46H925800[15;25H2[15;36H91[16;25H431[16;39H430[18;55H4[18;69H4
4934[43d[11;29H92710[11;44H816010[12;29H6135[12;44H247362[13;12Hlink w/ 2 Good: 12946644 Bad: 21062079[14;12Hno link Good: 13016503 Bad: 20992221[K[15;25H5[15;37H4[15;59H8[16;26H64[16;40H63[18;55H8[18;69H8
4935[43d[11;12Hlink w/ 2 Good: 13245755 Bad: 20853361[12;12Hlink w/ 4 Good: 12813720 Bad: 21285397[13;12Hno link Good: 12999346 Bad: 21099773[K[14;29H69271[14;43H1029849[15;25H7[15;37H6[16;26H97[16;40H96[18;54H12[18;68H12
4936[43d[11;12Hno link Good: 13286543 Bad: 20902968[K[12;12Hno link Good: 12853530 Bad: 21335983[K[13;27H3039534[13;44H149980[14;28H109675[14;45H79840[15;23H900[15;37H9[15;59H9[16;25H531[16;39H530[18;55H6[18;69H6
4937[43d[11;28H305586[11;45H74325[12;29H71208[12;44H408704[13;29H5779[13;44H222119[14;29H28262[14;44H151653[15;25H2[15;35H901[15;59H6[16;26H64[16;40H63[18;54H20[18;68H20
4938[43d[11;12Hlink w/ 4 Good: 13343933 Bad: 21026372[12;12Hlink w/ 4 Good: 12908405 Bad: 21461902[13;12Hlink w/ 1 Good: 13095419 Bad: 21274889[14;12Hlink w/ 1 Good: 13166162 Bad: 21204147[15;25H4[15;37H3[16;26H97[16;40H96[18;55H4[18;69H4
4939[43d[11;31H97057[11;47H63643[12;20H3[12;31H60719[12;47H99983[13;20H4[13;30H148110[13;46H312593[14;20H3[14;30H218930[14;47H41774[15;25H7[15;37H6[15;59H7[16;25H630[16;39H629[18;55H8[18;69H8
4940[43d[11;12Hno link Good: 13428942 Bad: 21123130[K[12;31H91315[12;46H560758[13;12Hno link Good: 13179236 Bad: 21372839[K[14;12Hno link Good: 13250284 Bad: 21301792[K[15;25H9[15;37H8[16;26H64[16;40H63[18;54H32[18;68H32
4941[43d[11;29H48051[11;45H94415[12;12Hno link Good: 13008906 Bad: 21633561[K[13;12Hlink w/ 1 Good: 13197496 Bad: 21444972[14;29H68637[14;45H7383[15;24H11[15;36H10[16;26H97[16;40H96[18;55H6[18;69H6
4942[43d[11;28H500364[11;44H232499[12;12Hlink w/ 1 Good: 13060476 Bad: 21672388[13;20H2[13;30H249353[13;47H8351[14;12Hlink w/ 1 Good: 13320689 Bad: 21412177[15;25H4[15;37H3[15;59H8[16;25H730[16;39H729[18;54H40[18;68H40
4943[43d[11;29H4741[11;45H75845[12;12Hno link Good: 13106550 Bad: 21716710[K[13;31H95781[13;46H527481[14;12Hno link Good: 13367214 Bad: 21456049[K[15;25H6[15;37H5[16;26H63[16;40H62[18;55H4[18;69H4
4944[43d[11;29H66548[11;44H347109[12;29H24213[12;45H89445[13;12Hno link Good: 13314001 Bad: 21599659[K[14;29H85686[14;44H527975[15;25H9[15;37H8[15;59H9[16;26H96[16;40H95[18;55H8[18;69H8
4945[43d[11;12Hlink w/ 2 Good: 13598561 Bad: 21405491[12;12Hlink w/ 4 Good: 13155126 Bad: 21848927[13;29H4528[13;44H658773[14;28H417292[14;45H86763[15;24H21[15;36H20[16;25H829[16;39H828[18;54H52[18;68H52
4946[43d[11;20H3[11;30H651613[11;47H42836[12;20H3[12;30H207409[12;47H87041[13;12Hlink w/ 4 Good: 13397924 Bad: 21696527[14;29H70047[14;44H624405[15;25H3[15;37H2[15;59H6[16;26H62[16;40H61[18;55H6[18;69H6
4947[43d[11;12Hno link Good: 13684948 Bad: 21499896[K[12;31H39516[12;46H945329[13;12Hno link Good: 13430473 Bad: 21754373[K[14;28H50277[14;45H82071[15;25H6[15;37H5[15;59H7[16;26H96[16;40H95[18;54H60[18;68H60
4948[43d[11;28H703999[11;44H571243[12;20H4[12;31H57062[12;45H2018182[13;29H48728[13;44H826517[14;29H2131[14;44H753929[15;25H8[15;37H7[16;25H929[16;39H928[18;55H4[18;69H4
4949[43d[11;29H45751[11;44H62053[12;12Hno link Good: 13297766 Bad: 22068519[K[13;29H89879[13;45H7640[14;12Hlink w/ 2 Good: 13562697 Bad: 21803590[15;24H31[15;36H30[15;59H8[16;26H62[16;40H61[18;55H8[18;69H8
4950[43d[11;29H98787[11;45H57894[12;12Hlink w/ 1 Good: 13350093 Bad: 22106589[13;12Hlink w/ 4 Good: 13542588 Bad: 21914096[14;12Hno link Good: 13615464 Bad: 21841221[K[15;25H3[15;37H2[16;26H95[16;40H94[18;54H72[18;68H72
4951[43d[11;28H818199[11;44H728880[12;20H3[12;31H67916[12;47H79165[13;12Hno link Good: 13561087 Bad: 21985995[K[14;29H3423[14;44H912849[15;25H5[15;37H4[15;59H7[16;24H3028[16;38H3027[18;55H6[18;69H6
4952[43d[11;29H46384[11;45H91094[12;12Hno link Good: 13394787 Bad: 22242692[K[13;29H88463[13;43H2049017[14;12Hlink w/ 2 Good: 13661875 Bad: 21975606[15;25H8[15;37H7[15;59H9[16;26H62[16;40H61[18;54H80[18;68H80
4953[43d[11;29H65498[11;44H862377[12;28H412420[12;44H315456[13;12Hlink w/ 2 Good: 13606630 Bad: 22121247[14;12Hno link Good: 13680386 Bad: 22047492[K[15;24H40[15;37H9[15;59H8[16;26H95[16;40H94[18;55H4[18;69H4
4954[43d[11;12Hlink w/ 3 Good: 13898207 Bad: 21920063[12;12Hlink w/ 4 Good: 13443965 Bad: 22374306[13;20H4[13;31H38517[13;47H79755[14;12Hlink w/ 3 Good: 13712520 Bad: 22105754[15;25H2[15;36H41[16;25H128[16;39H127[18;55H8[18;69H8
4955[43d[11;12Hno link Good: 13951325 Bad: 21957341[K[12;12Hno link Good: 13496319 Bad: 22412348[K[13;20H2[13;31H91210[13;46H217458[14;20H1[14;31H65321[14;47H43349[15;25H5[15;37H4[15;59H7[16;26H61[16;40H60[18;54H92[18;68H92
4956[43d[11;29H84127[11;43H2014935[12;28H527873[12;45H71190[13;12Hno link Good: 13723245 Bad: 22275820[K[14;12Hno link Good: 13797499 Bad: 22201567[K[15;25H7[15;37H6[15;59H6[16;26H94[16;40H93[18;55H6[18;69H6
4957[43d[11;12Hlink w/ 3 Good: 14003200 Bad: 22086258[12;29H45535[12;44H543924[13;29H41483[13;44H347977[14;28H815936[14;45H73525[15;24H50[15;37H9[15;59H8[16;25H227[16;39H226[18;53H600[18;67H600
4958[43d[11;31H45452[11;46H135051[12;12Hlink w/ 1 Good: 13586835 Bad: 22593669[13;29H83135[13;45H97370[14;29H57824[14;44H322682[15;25H2[15;36H51[15;59H7[16;26H61[16;40H60[18;55H4[18;69H4
4959[43d[11;12Hno link Good: 14098263 Bad: 22172638[K[12;12Hno link Good: 13638885 Bad: 22632017[K[13;28H835424[13;44H435479[14;28H910235[14;45H60669[15;25H4[15;37H3[16;26H94[16;40H93[18;55H8[18;69H8
4960[43d[11;28H117334[11;44H243963[12;29H56588[12;44H704710[13;29H53597[13;44H507702[14;29H28770[14;44H432530[15;25H7[15;37H6[15;59H8[16;25H327[16;39H326[18;54H12[18;68H12
4961[43d[11;12Hlink w/ 2 Good: 14143583 Bad: 22308110[12;12Hlink w/ 4 Good: 13681643 Bad: 22770051[13;12Hlink w/ 4 Good: 13879138 Bad: 22572557[14;29H54572[14;45H97124[15;25H9[15;37H8[16;26H60[16;40H59[18;55H6[18;69H6
4962[43d[11;12Hno link Good: 14196646 Bad: 22345444[K[12;30H733987[12;46H808104[13;30H931833[13;46H610260[14;12Hlink w/ 3 Good: 14007351 Bad: 22534743[15;24H61[15;36H60[16;26H93[16;40H92[18;54H20[18;68H20
4963[43d[11;28H235721[11;45H96762[12;12Hno link Good: 13771982 Bad: 22860502[K[13;12Hno link Good: 13970250 Bad: 22662236[K[14;12Hno link Good: 14046034 Bad: 22586453[K[15;25H4[15;37H3[15;59H6[16;25H426[16;39H425[18;55H4[18;69H4
4964[43d[11;12Hlink w/ 2 Good: 14254900 Bad: 22467980[12;29H89556[12;44H933326[13;12Hlink w/ 1 Good: 13988502 Bad: 22734381[14;29H64501[14;44H65838[15;25H6[15;37H5[16;26H60[16;40H59[18;55H8[18;69H8
4965[43d[11;20H4[11;31H94843[11;46H518432[12;12Hlink w/ 4 Good: 13828599 Bad: 22984677[13;12Hno link Good: 14027913 Bad: 22785364[K[14;12Hlink w/ 2 Good: 14104145 Bad: 22709134[15;25H9[15;37H8[15;59H7[16;26H93[16;40H92[18;54H32[18;68H32
4966[43d[11;20H3[11;30H347908[11;47H55765[12;20H1[12;31H80944[12;45H3022730[13;12Hlink w/ 1 Good: 14080578 Bad: 22823097[14;20H3[14;31H5687[14;47H46801[15;24H71[15;36H70[16;25H526[16;39H525[18;55H6[18;69H6
4967[43d[11;31H78007[11;46H617038[12;12Hno link Good: 13909676 Bad: 23085370[K[13;12Hno link Good: 14109876 Bad: 22885171[K[14;12Hno link Good: 14186357 Bad: 22808691[K[15;25H3[15;37H2[16;26H59[16;40H58[18;54H40[18;68H40
4968[43d[11;20H4[11;31H98124[11;47H8731[12;12Hlink w/ 1 Good: 13928361 Bad: 23157082[13;12Hlink w/ 2 Good: 14129089 Bad: 22956356[14;12Hlink w/ 2 Good: 14205961 Bad: 22879485[15;25H6[15;37H5[15;59H8[16;26H92[16;40H91[18;55H4[18;69H4
4969[43d[11;20H2[11;30H451212[11;46H724624[12;31H80748[12;47H95089[13;12Hno link Good: 14181720 Bad: 22994118[K[14;31H58770[14;46H917070[15;25H8[15;37H7[16;25H626[16;39H625[18;55H8[18;69H8
4970[43d[11;12Hno link Good: 14496476 Bad: 22769757[K[12;12Hno link Good: 14025048 Bad: 23241187[K[13;28H226461[13;43H3039775[14;12Hno link Good: 14303595 Bad: 22962642[K[15;24H80[15;37H9[16;26H59[16;40H58[18;54H52[18;68H52
4971[43d[11;12Hlink w/ 4 Good: 14515649 Bad: 22840980[12;12Hlink w/ 1 Good: 14042716 Bad: 23313914[13;29H44806[13;44H111826[14;29H2213[14;43H3034498[15;25H3[15;36H82[15;59H9[16;26H92[16;40H91[18;55H6[18;69H6
4972[43d[11;20H3[11;31H49425[11;47H9760[12;31H75353[12;47H71673[13;29H77950[13;45H69077[14;29H55520[14;45H91509[15;25H5[15;37H4[15;59H6[16;25H725[16;39H724[18;54H60[18;68H60
4973[43d[11;30H602477[11;46H934943[12;30H127700[12;46H409722[13;28H330609[13;44H206814[14;12Hlink w/ 1 Good: 14408324 Bad: 23129100[15;25H8[15;37H7[15;59H7[16;26H58[16;40H57[18;55H4[18;69H4
4974[43d[11;12Hno link Good: 14634076 Bad: 22993741[K[12;12Hno link Good: 14158050 Bad: 23469768[K[13;29H615[13;45H66310[14;31H39366[14;47H88455[15;24H90[15;37H9[16;26H91[16;40H90[18;55H8[18;69H8
4975[43d[11;12Hlink w/ 3 Good: 14653200 Bad: 23065011[12;29H75678[12;44H542535[13;29H79763[13;44H338451[14;12Hno link Good: 14457832 Bad: 23260383[K[15;25H2[15;36H91[16;25H824[16;39H823[18;54H72[18;68H72
4976[43d[11;20H2[11;31H95704[11;46H113558[12;12Hlink w/ 1 Good: 14217263 Bad: 23592001[13;12Hlink w/ 2 Good: 14421669 Bad: 23387596[14;12Hlink w/ 2 Good: 14500023 Bad: 23309243[15;25H5[15;37H4[15;59H8[16;26H58[16;40H57[18;55H6[18;69H6
4977[43d[11;12Hno link Good: 14747297 Bad: 23152357[K[12;12Hno link Good: 14267961 Bad: 23631694[K[13;12Hno link Good: 14472807 Bad: 23426849[K[14;12Hno link Good: 14551226 Bad: 23348431[K[15;25H7[15;37H6[15;59H7[16;26H91[16;40H90[18;54H80[18;68H80
4978[43d[11;29H663[11;44H223656[12;29H85557[12;44H704497[13;12Hlink w/ 4 Good: 14491030 Bad: 23499025[14;29H69734[14;44H420322[15;23H1000 Good: 999 Bad: 0 B/W: 11.48 Gbps[16;25H924[16;39H923[18;55H4[18;69H4
4979[43d[11;29H94645[11;45H85805[12;28H312448[12;45H68003[13;12Hno link Good: 14518487 Bad: 23561966[K[14;29H97406[14;45H83048[15;26H2[15;36H1001 Bad: 0 B/W: 11.48 Gbps[16;26H57[16;40H56[18;55H8[18;69H8
4980[43d[11;28H813793[11;44H357052[12;12Hlink w/ 4 Good: 14330087 Bad: 23840759[13;29H36779[13;44H634068[14;12Hlink w/ 2 Good: 14616052 Bad: 23554797[15;26H4[15;39H3[16;26H90[16;40H89[18;54H92[18;68H92
4981[43d[11;12Hlink w/ 3 Good: 14848466 Bad: 23413100[12;20H1[12;31H6342[12;47H98140[13;12Hlink w/ 4 Good: 14570735 Bad: 23690834[14;12Hno link Good: 14650183 Bad: 23611387[K[15;26H7[15;39H6[15;61H7[16;24H4024[16;38H4023[18;55H6[18;69H6
4982[43d[11;12Hno link Good: 14901578 Bad: 23450385[K[12;20H4[12;30H415829[12;46H936135[13;12Hno link Good: 14623397 Bad: 23728568[K[14;28H702996[14;45H48970[15;26H9[15;39H8[16;26H57[16;40H56[18;53H700[18;67H700
4983[43d[11;29H32409[11;44H509951[12;12Hno link Good: 14445477 Bad: 23996884[K[13;29H5350[13;45H88856[14;12Hlink w/ 1 Good: 14733272 Bad: 23709092[15;25H11[15;38H10[15;61H6[16;26H90[16;40H89[18;55H4[18;69H4
4984[43d[11;29H51622[11;45H8113[12;29H63079[12;43H4069675[13;29H71733[13;44H861022[14;12Hno link Good: 14751678 Bad: 23781078[K[15;26H4[15;39H3[15;61H7[16;25H123[16;39H122[18;55H8[18;69H8
4985[43d[11;12Hlink w/ 3 Good: 14995487 Bad: 23627661[12;12Hlink w/ 1 Good: 14506084 Bad: 24117065[13;12Hlink w/ 4 Good: 14715061 Bad: 23908089[14;12Hlink w/ 3 Good: 14795189 Bad: 23827962[15;26H6[15;39H5[16;26H56[16;40H55[18;54H12[18;68H12
4986[43d[11;29H5046613[11;47H66935[12;12Hno link Good: 14556379 Bad: 24157170[K[13;12Hno link Good: 14765741 Bad: 23947809[K[14;12Hno link Good: 14845999 Bad: 23867552[K[15;26H9[15;39H8[15;61H8[16;26H89[16;40H88[18;55H6[18;69H6
4987[43d[11;12Hno link Good: 15065729 Bad: 23738217[K[12;29H74018[12;44H229929[13;29H83923[13;43H4020025[14;29H6443[14;44H939511[15;25H21[15;38H20[16;25H223[16;39H222[18;54H20[18;68H20
4988[43d[11;12Hlink w/ 3 Good: 15093701 Bad: 23800640[12;28H600570[12;45H93772[13;12Hlink w/ 4 Good: 14811157 Bad: 24083187[14;29H91750[14;43H4002595[15;26H3[15;39H2[16;26H56[16;40H55[18;55H4[18;69H4
4989[43d[11;30H146747[11;47H3799[12;12Hlink w/ 4 Good: 14652950 Bad: 24331788[13;20H2[13;31H63792[13;46H12094[14;12Hlink w/ 2 Good: 14944577 Bad: 24040163[15;26H6[15;39H5[15;61H9[16;26H89[16;40H88[18;55H8[18;69H8
4990[43d[11;12Hno link Good: 15184170 Bad: 23891288[K[12;20H3[12;31H89408[12;47H86051[13;12Hno link Good: 14900671 Bad: 24174789[K[14;20H1[14;31H81586[14;47H93875[15;26H8[15;39H7[15;61H6[16;25H322[16;39H321[18;54H32[18;68H32
4991[43d[11;28H203292[11;44H962561[12;12Hno link Good: 14707077 Bad: 24458778[K[13;12Hlink w/ 2 Good: 14918945 Bad: 24246911[14;20H2[14;29H5000143[14;46H165714[15;25H30[15;39H9[16;26H55[16;40H54[18;55H6[18;69H6
4992[43d[11;29H45109[11;43H4011140[12;29H47896[12;44H508354[13;12Hno link Good: 14960134 Bad: 24296117[K[14;20H1[14;31H41546[14;46H214706[15;26H3[15;38H32[15;61H7[16;26H88[16;40H87[18;54H40[18;68H40
4993[43d[11;29H98201[11;45H48437[12;12Hlink w/ 4 Good: 14800204 Bad: 24546436[13;27H5012802[13;44H333839[14;31H94331[14;47H52311[15;26H5[15;39H4[16;25H422[16;39H421[18;55H4[18;69H4
4994[43d[11;28H326349[11;44H110692[12;12Hno link Good: 14827041 Bad: 24610001[K[13;12Hlink w/ 1 Good: 15040062 Bad: 24396981[14;12Hno link Good: 15121833 Bad: 24315212[K[15;26H8[15;39H7[15;61H8[16;26H55[16;40H54[18;55H8[18;69H8
4995[43d[11;12Hlink w/ 4 Good: 15347773 Bad: 24179661[12;29H47154[12;45H8028[13;12Hno link Good: 15060804 Bad: 24466632[K[14;12Hlink w/ 2 Good: 15142681 Bad: 24384756[15;25H40[15;39H9[16;26H88[16;40H87[18;54H52[18;68H52
4996[43d[11;12Hno link Good: 15400840 Bad: 24216994[K[12;12Hlink w/ 1 Good: 14899523 Bad: 24718312[13;28H113426[13;44H504410[14;20H3[14;31H95465[14;46H422373[15;26H2[15;38H41[16;25H521[16;39H520[18;55H6[18;69H6
4997[43d[11;29H44689[11;45H63540[12;12Hno link Good: 14942374 Bad: 24765856[K[13;29H56755[13;45H51477[14;12Hno link Good: 15238861 Bad: 24469372[K[15;26H5[15;39H4[15;61H9[16;26H54[16;40H53[18;54H60[18;68H60
4998[43d[11;29H63796[11;44H334824[12;29H59955[12;44H83866[13;29H75143[13;44H623480[14;12Hlink w/ 1 Good: 15257259 Bad: 24541365[15;26H7[15;39H6[15;61H8[16;26H87[16;40H86[18;55H4[18;69H4
4999[43d[11;12Hlink w/ 4 Good: 15498989 Bad: 24390032[12;29H93948[12;45H95075[13;28H209637[13;45H79387[14;12Hno link Good: 15291970 Bad: 24597055[K[15;26H9[15;39H8[15;61H6[16;25H620[16;39H619[18;55H8[18;69H8
5000[43d[11;20H2[11;30H552057[11;46H427361[12;12Hlink w/ 3 Good: 15046284 Bad: 24933135[13;12Hlink w/ 2 Good: 15262303 Bad: 24717117[14;12Hlink w/ 2 Good: 15344753 Bad: 24634668[15;25H52[15;38H51[15;61H7[16;26H54[16;40H53[18;54H72[18;68H72
5001[43d[11;12Hno link Good: 15582306 Bad: 24487508[K[12;12Hno link Good: 15075309 Bad: 24994506[K[13;12Hno link Good: 15291735 Bad: 24778081[K[14;12Hno link Good: 15374342 Bad: 24695476[K[15;26H4[15;39H3[16;26H87[16;40H86[18;55H6[18;69H6
5002[43d[11;28H601251[11;44H558960[12;29H92886[12;43H506732[13;28H309911[13;44H850302[14;29H92773[14;44H767441[15;26H7[15;39H6[15;61H8[16;25H720[16;39H719[18;54H80[18;68H80
5003[43d[11;12Hlink w/ 3 Good: 15644961 Bad: 24605643[12;12Hlink w/ 4 Good: 15135560 Bad: 25115045[13;29H53039[13;45H97567[14;12Hlink w/ 2 Good: 15436091 Bad: 24814516[15;26H9[15;39H8[15;61H7[16;26H53[16;40H52[18;55H4[18;69H4
5004[43d[11;12Hno link Good: 15695356 Bad: 24645647[K[12;20H1[12;31H85163[12;47H55842[13;28H40304[13;44H93795[14;12Hno link Good: 15486158 Bad: 24854849[K[15;25H61[15;38H60[16;26H86[16;40H85[18;55H8[18;69H8
5005[43d[11;28H714477[11;44H716922[12;12Hno link Good: 15202847 Bad: 25228553[K[13;29H21406[13;43H5009995[14;28H504665[14;44H926737[15;26H4[15;39H3[15;61H8[16;25H819[16;39H818[18;54H92[18;68H92
5006[43d[11;12Hlink w/ 4 Good: 15742543 Bad: 24779252[12;29H29793[12;45H92004[13;29H48905[13;45H72893[14;29H32352[14;45H8944[15;26H6[15;39H5[16;26H52[16;40H51[18;55H6[18;69H6
5007[43d[11;12Hno link Good: 15761654 Bad: 24850537[K[12;29H47389[12;44H364803[13;29H67191[13;44H145002[14;29H50869[14;43H5061326[15;26H8[15;39H7[16;26H86[16;40H85[18;53H800[18;67H800
5008[43d[11;29H97057[11;44H905530[12;12Hlink w/ 4 Good: 15281772 Bad: 25420817[13;28H501874[13;44H200716[14;29H86026[14;44H116565[15;25H71[15;38H70[15;61H7[16;25H919[16;39H918[18;55H4[18;69H4
5009[43d[11;28H850113[11;45H4287[12;12Hno link Good: 15334138 Bad: 25458847[K[13;29H54519[13;45H38467[14;28H638783[14;45H54204[15;26H3[15;39H2[15;61H6[16;26H52[16;40H51[18;55H8[18;69H8
5010[43d[11;29H80036[11;43H5003344[12;12Hlink w/ 4 Good: 15362771 Bad: 25520610[13;29H83732[13;45H99650[14;29H68046[14;44H215337[15;26H6[15;39H5[15;61H7[16;26H85[16;40H84[18;54H12[18;68H12
5011[43d[11;29H99139[11;45H7463[12;12Hno link Good: 15380486 Bad: 25593288[K[13;28H602140[13;44H371636[14;29H86539[14;45H87238[15;26H8[15;39H7[16;24H5018[16;38H5017[18;55H6[18;69H6
5012[43d[11;12Hlink w/ 2 Good: 15943983 Bad: 25120190[12;28H424460[12;44H639714[13;12Hlink w/ 2 Good: 15646537 Bad: 25417638[14;28H731013[14;44H333163[15;25H80[15;39H9[16;26H51[16;40H50[18;54H20[18;68H20
5013[43d[11;12Hno link Good: 15994198 Bad: 25160370[K[12;29H73752[12;45H80817[13;12Hno link Good: 15696226 Bad: 25458344[K[14;29H80745[14;45H73827[15;26H3[15;38H82[15;61H8[16;26H84[16;40H83[18;55H4[18;69H4
5014[43d[11;27H6013381[11;44H231576[12;29H91350[12;44H753609[13;28H714685[13;44H530275[14;29H99144[14;44H44581[15;26H5[15;39H4[16;25H118[16;39H117[18;55H8[18;69H8
5015[43d[11;29H42279[11;45H93079[12;28H519027[12;44H816332[13;29H42879[13;45H92481[14;12Hlink w/ 2 Good: 15827541 Bad: 25507820[15;26H8[15;39H7[15;61H9[16;26H51[16;40H50[18;54H32[18;68H32
5016[43d[11;12Hlink w/ 2 Good: 16095533 Bad: 25330504[12;29H71553[12;45H54485[13;29H9571[13;44H630320[14;31H80569[14;47H45472[15;25H90[15;39H9[16;26H84[16;40H83[18;55H6[18;69H6
5017[43d[11;20H4[11;30H131840[11;47H84642[12;28H606729[12;44H909754[13;12Hlink w/ 2 Good: 15831408 Bad: 25685076[14;12Hno link Good: 15916429 Bad: 25600057[K[15;26H2[15;38H91[15;61H6[16;25H217[16;39H216[18;54H40[18;68H40
5018[43d[11;20H2[11;31H51003[11;46H455874[12;29H24367[12;45H82511[13;12Hno link Good: 15849660 Bad: 25757219[K[14;29H34984[14;45H71896[15;26H5[15;39H4[15;61H7[16;26H50[16;40H49[18;55H4[18;69H4
5019[43d[11;20H3[11;31H9378[11;46H503488[12;29H66149[12;43H6031123[13;12Hlink w/ 2 Good: 15891842 Bad: 25805431[14;29H7740[14;44H719870[15;26H7[15;39H6[16;26H83[16;40H82[18;55H8[18;69H8
5020[43d[11;30H246866[11;47H40800[12;28H718465[12;45H69202[13;12Hno link Good: 15944524 Bad: 25843144[K[14;27H6030201[14;45H57468[15;26H9[15;39H8[16;25H317[16;39H316[18;54H52[18;68H52
5021[43d[11;31H74859[11;46H603204[12;29H45112[12;44H13295[13;29H71748[13;44H906317[14;29H57709[14;44H820357[15;24H102[15;37H101[15;61H8[16;26H50[16;40H49[18;55H6[18;69H6
5022[43d[11;31H97340[11;47H71116[12;29H66[12;44H202345[13;29H93402[13;45H75056[14;29H79616[14;45H88844[15;26H4[15;39H3[16;26H83[16;40H82[18;54H60[18;68H60
5023[43d[11;20H4[11;30H350425[11;46H708427[12;12Hlink w/ 4 Good: 15818419 Bad: 26240434[13;12Hlink w/ 2 Good: 16046123 Bad: 26012732[14;28H132412[14;44H9264[15;26H7[15;39H6[15;61H9[16;25H416[16;39H415[18;55H4[18;69H4
5024[43d[11;31H93263[11;47H55990[12;12Hno link Good: 15860256 Bad: 26288997[K[13;12Hno link Good: 16088410 Bad: 26060845[K[14;29H74833[14;45H74423[15;26H9[15;39H8[15;61H8[16;26H49[16;40H48[18;55H8[18;69H8
5025[43d[11;12Hno link Good: 16412344 Bad: 25827306[K[12;29H7799[12;44H361655[13;12Hlink w/ 1 Good: 16106796 Bad: 26132856[14;29H93341[14;43H6046312[15;25H11[15;38H10[16;26H82[16;40H81[18;54H72[18;68H72
5026[43d[11;12Hlink w/ 3 Good: 16448553 Bad: 25881491[12;28H913047[12;44H416998[13;12Hno link Good: 16142350 Bad: 26187696[K[14;28H229129[14;44H100918[15;26H4[15;39H3[15;61H7[16;25H515[16;39H514[18;55H6[18;69H6
5027[43d[11;30H501655[11;46H918784[12;12Hlink w/ 1 Good: 15965404 Bad: 26455036[13;12Hlink w/ 4 Good: 16195056 Bad: 26225385[14;12Hlink w/ 3 Good: 16281913 Bad: 26138530[15;26H6[15;39H5[16;26H49[16;40H48[18;54H80[18;68H80
5028[43d[11;12Hno link Good: 16530765 Bad: 25980073[K[12;12Hno link Good: 15993277 Bad: 26517562[K[13;12Hno link Good: 16223522 Bad: 26287319[K[14;12Hno link Good: 16310468 Bad: 26200374[K[15;26H8[15;39H7[16;26H82[16;40H81[18;55H4[18;69H4
5029[43d[11;29H4991[11;43H6051314[12;27H6010898[12;45H9033[13;12Hlink w/ 2 Good: 16241806 Bad: 26359425[14;29H28923[14;45H72309[15;25H21[15;38H20[15;61H8[16;25H615[16;39H614[18;55H8[18;69H8
5030[43d[11;29H95273[11;45H96355[12;12Hlink w/ 4 Good: 16055445 Bad: 26636184[13;12Hno link Good: 16286765 Bad: 26404865[K[14;12Hlink w/ 1 Good: 16373995 Bad: 26317637[15;26H3[15;39H2[15;61H7[16;26H48[16;40H47[18;54H92[18;68H92
5031[43d[11;12Hlink w/ 4 Good: 16644688 Bad: 26137327[12;12Hno link Good: 16104019 Bad: 26677997[K[13;12Hlink w/ 4 Good: 16335708 Bad: 26446310[14;12Hno link Good: 16423020 Bad: 26358998[K[15;26H6[15;39H5[15;61H8[16;26H81[16;40H80[18;55H6[18;69H6
5032[43d[11;12Hno link Good: 16663755 Bad: 26208662[K[12;12Hlink w/ 4 Good: 16121674 Bad: 26750744[13;12Hno link Good: 16354081 Bad: 26518339[K[14;29H41471[14;44H430950[15;26H8[15;39H7[16;25H714[16;39H713[18;53H900[18;67H900
5033[43d[11;29H92049[11;45H70768[12;12Hno link Good: 16148582 Bad: 26814236[K[13;29H8157[13;45H8124[14;29H69263[14;45H93558[15;25H30[15;39H9[16;26H47[16;40H46[18;55H4[18;69H4
5034[43d[11;28H711197[11;44H342014[12;29H66141[12;45H87071[13;12Hlink w/ 2 Good: 16399815 Bad: 26653399[14;12Hlink w/ 1 Good: 16487741 Bad: 26565474[15;26H3[15;38H32[15;61H9[16;26H81[16;40H80[18;55H8[18;69H8
5035[43d[11;12Hlink w/ 3 Good: 16747477 Bad: 26396133[12;12Hlink w/ 1 Good: 16201545 Bad: 26942066[13;30H435589[13;46H708024[14;12Hno link Good: 16523857 Bad: 26619756[K[15;26H5[15;39H4[15;61H7[16;25H814[16;39H813[18;54H12[18;68H12
5036[43d[11;12Hno link Good: 16800571 Bad: 26433435[K[12;20H3[12;31H53848[12;47H80159[13;12Hno link Good: 16488252 Bad: 26745756[K[14;29H76582[14;45H57427[15;26H7[15;39H6[15;61H6[16;26H47[16;40H46[18;55H6[18;69H6
5037[43d[11;29H29403[11;45H94999[12;12Hno link Good: 16281471 Bad: 27042932[K[13;12Hlink w/ 4 Good: 16516373 Bad: 26808032[14;28H604804[14;44H719602[15;25H40[15;39H9[15;61H7[16;26H80[16;40H79[18;54H20[18;68H20
5038[43d[11;29H48547[11;44H566247[12;29H99110[12;44H115685[13;12Hno link Good: 16534661 Bad: 26880135[K[14;29H23339[14;45H91459[15;26H2[15;38H41[16;25H913[16;39H912[18;55H4[18;69H4
5039[43d[11;29H94365[11;44H610826[12;28H344072[12;45H61120[13;29H79907[13;44H925286[14;12Hlink w/ 1 Good: 16668784 Bad: 26836411[15;26H5[15;39H4[15;61H8[16;26H46[16;40H45[18;55H8[18;69H8
5040[43d[11;28H943479[11;45H52110[12;29H92365[12;44H203225[13;12Hlink w/ 1 Good: 16628592 Bad: 26966999[14;30H717509[14;47H78083[15;26H7[15;39H6[16;26H79[16;40H78[18;54H32[18;68H32
5041[43d[11;29H62693[11;44H723285[12;28H410028[12;45H75951[13;12Hno link Good: 16646722 Bad: 27039258[K[14;12Hno link Good: 16735974 Bad: 26950007[K[15;26H9[15;39H8[16;24H6013[16;38H6012[18;55H6[18;69H6
5042[43d[11;12Hlink w/ 4 Good: 16992545 Bad: 26783837[12;29H38813[12;44H337570[13;12Hlink w/ 1 Good: 16675934 Bad: 27100450[14;12Hlink w/ 3 Good: 16765450 Bad: 27010936[15;25H52[15;38H51[15;61H9[16;26H46[16;40H45[18;54H40[18;68H40
5043[43d[11;29H7045610[11;46H82116[12;29H91150[12;45H75628[13;12Hno link Good: 16728630 Bad: 27138150[K[14;12Hno link Good: 16818192 Bad: 27048589[K[15;26H4[15;39H3[15;61H6[16;26H79[16;40H78[18;55H4[18;69H4
5044[43d[11;12Hno link Good: 17081079 Bad: 26876097[K[12;12Hlink w/ 3 Good: 16525378 Bad: 27431799[13;29H63452[13;45H93726[14;29H53034[14;44H104145[15;26H6[15;39H5[16;25H112[16;39H111[18;55H8[18;69H8
5045[43d[11;28H100212[11;44H947358[12;12Hno link Good: 16542930 Bad: 27504641[K[13;29H81794[13;44H265778[14;29H7158[14;45H75989[15;26H9[15;39H8[15;61H7[16;26H45[16;40H44[18;54H52[18;68H52
5046[43d[11;12Hlink w/ 2 Good: 17143828 Bad: 26994138[12;12Hlink w/ 1 Good: 16585605 Bad: 27552362[13;12Hlink w/ 2 Good: 16824892 Bad: 27313076[14;28H91490[14;44H223065[15;25H61[15;38H60[16;26H78[16;40H77[18;55H6[18;69H6
5047[43d[11;31H96893[11;45H7031467[12;30H637907[12;47H90454[13;31H77606[13;47H5075[14;12Hlink w/ 2 Good: 16967669 Bad: 27260694[15;26H4[15;39H3[15;61H8[16;25H211[16;39H210[18;54H60[18;68H60
5048[43d[11;12Hno link Good: 17223967 Bad: 27094791[K[12;12Hno link Good: 16663647 Bad: 27655112[K[13;12Hno link Good: 16903882 Bad: 27414878[K[14;12Hno link Good: 16994160 Bad: 27324601[K[15;26H6[15;39H5[16;26H45[16;40H44[18;55H4[18;69H4
5049[43d[11;12Hlink w/ 2 Good: 17247155 Bad: 27162001[12;12Hlink w/ 4 Good: 16685711 Bad: 27723447[13;12Hlink w/ 4 Good: 16926432 Bad: 27482727[14;27H7017115[14;45H92045[15;26H8[15;39H7[15;61H7[16;26H78[16;40H77[18;55H8[18;69H8
5050[43d[11;20H4[11;30H300170[11;47H99380[12;20H1[12;30H738118[12;47H61433[13;31H7906[13;46H520491[14;12Hlink w/ 2 Good: 17069950 Bad: 27429604[15;25H71[15;38H70[15;61H8[16;25H311[16;39H310[18;54H72[18;68H72
5051[43d[11;12Hno link Good: 17342234 Bad: 27247712[K[12;12Hno link Good: 16779128 Bad: 27810819[K[13;12Hno link Good: 17020561 Bad: 27569387[K[14;12Hno link Good: 17111502 Bad: 27478447[K[15;26H3[15;39H2[16;26H44[16;40H43[18;55H6[18;69H6
5052[43d[11;29H61318[11;44H319025[12;29H96707[12;45H83637[13;29H38800[13;44H641545[14;29H3002[14;44H550324[15;26H6[15;39H5[15;61H7[16;26H77[16;40H76[18;54H80[18;68H80
5053[43d[11;12Hlink w/ 3 Good: 17398411 Bad: 27372328[12;28H832779[12;44H937961[13;29H75252[13;45H95489[14;29H66694[14;44H604048[15;26H8[15;39H7[16;25H410[16;39H409[18;55H4[18;69H4
5054[43d[11;12Hno link Good: 17451515 Bad: 27409619[K[12;29H85091[12;45H76044[13;28H127917[13;44H73321[14;12Hlink w/ 3 Good: 17219516 Bad: 27641622[15;25H80[15;39H9[16;26H44[16;40H43[18;55H8[18;69H8
5055[43d[11;29H79839[11;45H71691[12;28H912039[12;43H8039492[13;12Hlink w/ 2 Good: 17155429 Bad: 27796104[14;12Hno link Good: 17247246 Bad: 27704288[K[15;26H3[15;38H82[15;61H8[16;26H77[16;40H76[18;54H92[18;68H92
5056[43d[11;29H99023[11;44H542903[12;29H29644[12;44H112284[13;12Hno link Good: 17173631 Bad: 27868298[K[14;29H65762[14;45H7616[15;26H5[15;39H4[15;61H7[16;25H510[16;39H509[18;55H6[18;69H6
5057[43d[11;12Hlink w/ 3 Good: 17545139 Bad: 27587185[12;29H7505[12;45H57271[13;28H219322[13;44H913004[14;28H311671[14;44H820656[15;26H7[15;39H6[16;26H43[16;40H42[18;52H2000[18;66H2000
5058[43d[11;12Hno link Good: 17593680 Bad: 27629039[K[12;27H702267[12;44H200047[13;29H67376[13;45H55346[14;29H59876[14;45H62847[15;25H90[15;39H9[15;61H8[16;26H76[16;40H75[18;55H4[18;69H4
5059[43d[11;12Hlink w/ 3 Good: 17612864 Bad: 27700252[12;29H40233[12;45H72884[13;29H85784[13;43H8027334[14;29H78294[14;44H934826[15;26H2[15;38H91[16;25H609[16;39H608[18;55H8[18;69H8
5060[43d[11;12Hno link Good: 17641050 Bad: 27762464[K[12;12Hlink w/ 1 Good: 17067155 Bad: 28336360[13;28H313288[13;45H90228[14;28H405968[14;45H97549[15;26H5[15;39H4[15;61H9[16;26H42[16;40H41[18;54H12[18;68H12
5061[43d[11;29H60197[11;44H833711[12;12Hno link Good: 17084909 Bad: 28409000[K[13;29H31535[13;44H162376[14;29H24469[14;43H8069443[15;26H7[15;39H6[15;61H7[16;26H76[16;40H75[18;55H6[18;69H6
5062[43d[11;12Hlink w/ 3 Good: 17697617 Bad: 27886685[12;12Hlink w/ 1 Good: 17121263 Bad: 28463041[13;12Hlink w/ 4 Good: 17368251 Bad: 28216054[14;29H61455[14;44H122851[15;26H9[15;39H8[15;61H6[16;25H709[16;39H708[18;54H20[18;68H20
5063[43d[11;12Hno link Good: 17750727 Bad: 27923973[K[12;31H73597[12;46H501105[13;12Hno link Good: 17420955 Bad: 28253748[K[14;12Hlink w/ 1 Good: 17514231 Bad: 28160473[15;24H202[15;37H201[15;61H7[16;26H42[16;40H41[18;55H4[18;69H4
5064[43d[11;12Hlink w/ 2 Good: 17778853 Bad: 27986239[12;12Hno link Good: 17200293 Bad: 28564800[K[13;29H48137[13;44H316957[14;12Hno link Good: 17541630 Bad: 28223465[K[15;26H4[15;39H3[16;26H75[16;40H74[18;55H8[18;69H8
5065[43d[11;20H4[11;31H98021[11;45H8057470[12;12Hlink w/ 1 Good: 17217760 Bad: 28637733[13;29H66369[13;45H89125[14;29H60112[14;45H95383[15;26H6[15;39H5[16;25H808[16;39H807[18;54H32[18;68H32
5066[43d[11;12Hno link Good: 17844687 Bad: 28101202[K[12;12Hno link Good: 17263701 Bad: 28682189[K[13;12Hlink w/ 1 Good: 17512500 Bad: 28433391[14;12Hlink w/ 1 Good: 17606478 Bad: 28339414[15;26H9[15;39H8[15;61H8[16;26H41[16;40H40[18;55H6[18;69H6
5067[43d[11;29H92935[11;45H43349[12;28H311103[12;44H725182[13;20H2[13;31H60267[13;47H76019[14;31H54320[14;47H81967[15;25H11[15;38H10[16;26H74[16;40H73[18;54H40[18;68H40
5068[43d[11;28H912023[11;44H214657[12;29H28677[12;45H98005[13;20H4[13;31H78474[13;46H54820[14;12Hno link Good: 17672882 Bad: 28453802[K[15;26H4[15;39H3[15;61H9[16;25H908[16;39H907[18;55H4[18;69H4
5069[43d[11;29H42735[11;45H74340[12;29H58264[12;44H858812[13;12Hno link Good: 17608592 Bad: 28608485[K[14;12Hlink w/ 1 Good: 17703155 Bad: 28513923[15;26H6[15;39H5[15;61H8[16;26H41[16;40H40[18;55H8[18;69H8
5070[43d[11;12Hlink w/ 4 Good: 17995754 Bad: 28311720[12;12Hlink w/ 3 Good: 17410646 Bad: 28896829[13;12Hlink w/ 4 Good: 17661200 Bad: 28646276[14;12Hno link Good: 17755938 Bad: 28551539[K[15;26H8[15;39H7[15;61H6[16;26H74[16;40H73[18;54H52[18;68H52
5071[43d[11;12Hno link Good: 18030378 Bad: 28367818[K[12;12Hno link Good: 17444066 Bad: 28954131[K[13;12Hno link Good: 17695126 Bad: 28703072[K[14;29H89969[14;44H608230[15;25H21[15;38H20[15;61H7[16;24H7007[16;38H7006[18;55H6[18;69H6
5072[43d[11;29H49474[11;44H439109[12;29H61727[12;43H9026857[13;28H713444[13;45H75141[14;28H808446[14;45H8014[15;26H3[15;39H2[16;26H40[16;40H39[18;54H60[18;68H60
5073[43d[11;12Hlink w/ 4 Good: 18094010 Bad: 28484976[12;12Hlink w/ 1 Good: 17505466 Bad: 29073522[13;12Hlink w/ 2 Good: 17757541 Bad: 28821448[14;29H5276[14;44H726224[15;26H5[15;39H4[16;26H73[16;40H72[18;55H4[18;69H4
5074[43d[11;30H147042[11;46H522338[12;12Hno link Good: 17557771 Bad: 29111610[K[13;12Hno link Good: 17810233 Bad: 28859150[K[14;28H90554[14;45H63838[15;26H8[15;39H7[15;61H8[16;25H107[16;39H106[18;55H8[18;69H8
5075[43d[11;12Hno link Good: 18172174 Bad: 28587606[K[12;12Hlink w/ 3 Good: 17581617 Bad: 29178164[13;12Hlink w/ 1 Good: 17834621 Bad: 28925161[14;12Hlink w/ 2 Good: 17930110 Bad: 28829673[15;25H30[15;39H9[16;26H40[16;40H39[18;54H72[18;68H72
5076[43d[11;12Hlink w/ 2 Good: 18196506 Bad: 28653669[12;12Hno link Good: 17604718 Bad: 29245458[K[13;12Hno link Good: 17858263 Bad: 28991914[K[14;12Hno link Good: 17953985 Bad: 28896193[K[15;26H3[15;38H32[16;26H73[16;40H72[18;55H6[18;69H6
5077[43d[11;12Hno link Good: 18249572 Bad: 28690999[K[12;12Hlink w/ 3 Good: 17657032 Bad: 29283540[13;28H910950[13;43H9029623[14;12Hlink w/ 3 Good: 18006753 Bad: 28933822[15;26H5[15;39H4[16;25H206[16;39H205[18;54H80[18;68H80
5078[43d[11;29H90593[11;44H740376[12;12Hno link Good: 17696896 Bad: 29334074[K[13;29H51342[13;45H79629[14;12Hno link Good: 18047406 Bad: 28983566[K[15;26H7[15;39H6[16;26H39[16;40H38[18;55H4[18;69H4
5079[43d[11;28H30971[11;44H811652[12;12Hlink w/ 4 Good: 17714542 Bad: 29406824[13;29H69731[13;44H151636[14;12Hlink w/ 2 Good: 18065930 Bad: 29055439[15;25H40[15;39H9[15;61H7[16;26H72[16;40H71[18;55H8[18;69H8
5080[43d[11;29H47695[11;45H6406[12;12Hno link Good: 17751651 Bad: 29460108[K[13;12Hlink w/ 1 Good: 18007103 Bad: 29204657[14;12Hno link Good: 18103571 Bad: 29108190[K[15;26H2[15;38H41[16;25H305[16;39H304[18;54H92[18;68H92
5081[43d[11;12Hlink w/ 2 Good: 18400757 Bad: 28901398[12;12Hlink w/ 4 Good: 17803999 Bad: 29498157[13;20H4[13;31H59721[13;47H4243[14;29H56388[14;45H45771[15;26H4[15;39H3[16;26H39[16;40H38[18;55H6[18;69H6
5082[43d[11;12Hno link Good: 18428001 Bad: 28964550[K[12;12Hno link Good: 17829873 Bad: 29562680[K[13;12Hno link Good: 18086141 Bad: 29306413[K[14;29H83093[14;44H209462[15;26H7[15;39H6[16;26H72[16;40H71[18;53H100[18;67H100
5083[43d[11;29H47058[11;43H9035889[12;29H47450[12;44H635499[13;28H104430[13;45H78520[14;28H201577[14;45H81374[15;26H9[15;39H8[16;25H405[16;39H404[18;55H4[18;69H4
5084[43d[11;12Hlink w/ 3 Good: 18494413 Bad: 29078928[12;12Hlink w/ 4 Good: 17893855 Bad: 29679487[13;29H51234[13;44H422109[14;29H48514[14;44H324831[15;25H52[15;38H51[15;61H8[16;26H38[16;40H37[18;55H8[18;69H8
5085[43d[11;20H4[11;30H541989[11;46H121749[12;12Hno link Good: 17940541 Bad: 29723198[K[13;29H98239[13;45H65501[14;12Hlink w/ 2 Good: 18295610 Bad: 29368131[15;26H4[15;39H3[16;26H71[16;40H70[18;54H12[18;68H12
5086[43d[11;12Hno link Good: 18561038 Bad: 29193099[K[12;29H58166[12;45H95972[13;12Hlink w/ 1 Good: 18216410 Bad: 29537729[14;12Hno link Good: 18314090 Bad: 29440051[K[15;26H6[15;39H5[16;25H504[16;39H503[18;55H6[18;69H6
5087[43d[11;29H89145[11;44H255386[12;12Hlink w/ 1 Good: 17985124 Bad: 29859409[13;31H43796[13;46H600738[14;29H41791[14;44H502744[15;26H9[15;39H8[15;61H9[16;26H37[16;40H36[18;54H20[18;68H20
5088[43d[11;28H608223[11;44H326708[12;12Hno link Good: 18002616 Bad: 29932317[K[13;12Hno link Good: 18261937 Bad: 29672997[K[14;29H60323[14;45H74612[15;25H61[15;38H60[15;61H7[16;26H71[16;40H70[18;55H4[18;69H4
5089[43d[11;12Hlink w/ 3 Good: 18646800 Bad: 29378852[12;29H40181[12;45H85472[13;12Hlink w/ 1 Good: 18299914 Bad: 29725741[14;12Hlink w/ 2 Good: 18398531 Bad: 29627125[15;26H3[15;39H2[15;61H6[16;25H604[16;39H603[18;55H8[18;69H8
5090[43d[11;20H2[11;31H99897[11;46H416147[12;12Hlink w/ 1 Good: 18092518 Bad: 30023528[13;12Hno link Good: 18352587 Bad: 29763460[K[14;12Hno link Good: 18451302 Bad: 29664746[K[15;26H6[15;39H5[15;61H7[16;26H37[16;40H36[18;54H32[18;68H32
5091[43d[11;30H726725[11;47H79718[12;12Hno link Good: 18118023 Bad: 30088421[K[13;12Hlink w/ 1 Good: 18378558 Bad: 29827887[14;29H776[14;44H728844[15;26H8[15;39H7[16;26H70[16;40H69[18;55H6[18;69H6
5092[43d[11;12Hno link Good: 18745801 Bad: 29551037[K[12;29H35681[12;44H161158[13;12Hno link Good: 18396905 Bad: 29899935[K[14;12Hlink w/ 2 Good: 18496172 Bad: 29800669[15;25H71[15;38H70[15;61H8[16;25H703[16;39H702[18;54H40[18;68H40
5093[43d[11;12Hlink w/ 2 Good: 18792681 Bad: 29594553[12;12Hlink w/ 1 Good: 18181689 Bad: 30205546[13;12Hlink w/ 1 Good: 18443310 Bad: 29943927[14;30H542763[14;47H44475[15;26H3[15;39H2[16;26H36[16;40H35[18;55H4[18;69H4
5094[43d[11;12Hno link Good: 18839763 Bad: 29637865[K[12;12Hno link Good: 18227957 Bad: 30249673[K[13;20H2[13;31H8995[13;47H87681[14;12Hno link Good: 18589497 Bad: 29888135[K[15;26H5[15;39H4[16;26H70[16;40H69[18;55H8[18;69H8
5095[43d[11;29H58919[11;44H709109[12;29H4547[12;44H322552[13;12Hno link Good: 18508183 Bad: 30059847[K[14;28H607969[14;44H960062[15;26H8[15;39H7[16;25H803[16;39H802[18;54H52[18;68H52
5096[43d[11;29H90802[11;45H67616[12;12Hlink w/ 3 Good: 18276269 Bad: 30382150[13;29H39597[13;44H118823[14;29H39526[14;42H30018896[15;25H80[15;39H9[16;26H36[16;40H35[18;55H6[18;69H6
5097[43d[11;28H94387[11;44H804949[12;20H1[12;30H328594[12;46H420228[13;12Hlink w/ 4 Good: 18592282 Bad: 30156541[14;12Hlink w/ 1 Good: 18692314 Bad: 30056511[15;26H3[15;38H82[15;61H7[16;26H69[16;40H68[18;54H60[18;68H60
5098[43d[11;29H77419[11;45H61796[12;12Hno link Good: 18360813 Bad: 30478403[K[13;12Hno link Good: 18625014 Bad: 30214204[K[14;30H725248[14;46H11397[15;26H5[15;39H4[16;25H902[16;39H901[18;55H4[18;69H4
5099[43d[11;29H96511[11;44H933100[12;29H78496[12;44H551116[13;29H43372[13;45H86241[14;12Hno link Good: 18743849 Bad: 30185765[K[15;26H7[15;39H6[16;26H35[16;40H34[18;55H8[18;69H8
5100[43d[11;12Hlink w/ 3 Good: 19042130 Bad: 29977878[12;12Hlink w/ 4 Good: 18423245 Bad: 30596764[13;12Hlink w/ 2 Good: 18688488 Bad: 30331522[14;12Hlink w/ 2 Good: 18789194 Bad: 30230817[15;25H90[15;39H9[15;61H8[16;26H68[16;40H67[18;54H72[18;68H72
5101[43d[11;20H4[11;31H95173[11;44H30015230[12;31H7557[12;46H634829[13;30H741109[13;47H69297[14;20H1[14;30H841986[14;47H68421[15;26H2[15;38H91[16;24H8002[16;38H8001[18;55H6[18;69H6
5102[43d[11;20H3[11;30H119400[11;47H81399[12;12Hno link Good: 18498469 Bad: 30702331[K[13;20H1[13;31H64528[13;46H436274[14;12Hno link Good: 18865581 Bad: 30335222[K[15;26H4[15;39H3[15;61H7[16;26H35[16;40H34[18;54H80[18;68H80
5103[43d[11;20H2[11;31H4474[11;46H146456[12;12Hlink w/ 3 Good: 18522496 Bad: 30768702[13;20H4[13;31H89099[13;46H502100[14;12Hlink w/ 3 Good: 18890476 Bad: 30400724[15;26H7[15;39H6[15;61H8[16;26H68[16;40H67[18;55H4[18;69H4
5104[43d[11;20H4[11;31H97869[11;47H83723[12;20H1[12;31H74885[12;46H806708[13;12Hno link Good: 18841784 Bad: 30539810[K[14;30H943182[14;47H38413[15;26H9[15;39H8[16;25H101[16;39H100[18;55H8[18;69H8
5105[43d[11;20H3[11;30H237862[11;46H234124[12;12Hno link Good: 18613801 Bad: 30858187[K[13;29H81231[13;45H90758[14;20H2[14;31H82655[14;47H89335[15;24H302[15;37H301[15;61H9[16;26H34[16;40H33[18;54H92[18;68H92
5106[43d[11;12Hno link Good: 19256989 Bad: 30305399[K[12;29H31353[12;44H931036[13;29H99480[13;44H662911[14;12Hno link Good: 19001262 Bad: 30561130[K[15;26H4[15;39H3[15;61H7[16;26H67[16;40H66[18;55H6[18;69H6
5107[43d[11;12Hlink w/ 4 Good: 19296059 Bad: 30356720[12;29H69454[12;45H8332[13;28H937914[13;44H714867[14;29H39900[14;44H612882[15;26H6[15;39H5[16;25H200[16;40H99[18;53H200[18;67H200
5108[43d[11;12Hno link Good: 19349119 Bad: 30394053[K[12;12Hlink w/ 1 Good: 18721826 Bad: 31021347[13;29H90612[13;45H52562[14;29H92653[14;45H5052[15;26H9[15;39H8[16;26H34[16;39H233[18;55H4[18;69H4
5109[43d[11;12Hlink w/ 2 Good: 19375394 Bad: 30458179[12;12Hno link Good: 18746731 Bad: 31086843[K[13;27H901609[13;44H817483[14;28H118259[14;44H715317[15;25H11[15;38H10[16;26H67[16;40H66[18;55H8[18;69H8
5110[43d[11;12Hno link Good: 19394411 Bad: 30529557[K[12;29H64449[12;44H159520[13;29H3437[13;45H89598[14;29H36678[14;45H87294[15;26H3[15;39H2[16;25H300[16;40H99[18;54H12[18;68H12
5111[43d[11;28H442780[11;45H71585[12;12Hlink w/ 1 Good: 18811804 Bad: 31202563[13;12Hlink w/ 1 Good: 19082103 Bad: 30932265[14;12Hlink w/ 2 Good: 19184660 Bad: 30829709[15;26H6[15;39H5[15;61H8[16;26H33[16;39H332[18;55H6[18;69H6
5112[43d[11;29H89288[11;44H615473[12;20H3[12;31H5742[12;47H47338[13;12Hno link Good: 19128080 Bad: 30976683[K[14;12Hno link Good: 19230751 Bad: 30874013[K[15;26H8[15;39H7[16;26H66[16;40H65[18;54H20[18;68H20
5113[43d[11;28H50843[11;45H86718[12;12Hno link Good: 18875073 Bad: 31320084[K[13;29H46333[13;43H1048826[14;29H49177[14;44H94598[15;25H21[15;38H20[15;61H9[16;26H99[16;40H98[18;55H4[18;69H4
5114[43d[11;29H36607[11;44H748945[12;28H902004[12;45H83549[13;29H73758[13;44H11179[14;12Hlink w/ 1 Good: 19276983 Bad: 31008572[15;26H3[15;39H2[15;61H8[16;25H432[16;39H431[18;55H8[18;69H8
5115[43d[11;12Hlink w/ 2 Good: 19555729 Bad: 30820220[12;29H19588[12;44H456362[13;29H92012[13;45H83940[14;12Hno link Good: 19295703 Bad: 31080250[K[15;26H5[15;39H4[15;61H6[16;26H66[16;40H65[18;54H32[18;68H32
5116[43d[11;12Hno link Good: 19595351 Bad: 30871317[K[12;12Hlink w/ 3 Good: 18958158 Bad: 31508512[13;28H231064[13;44H235607[14;28H334870[14;44H131802[15;26H8[15;39H7[15;61H7[16;26H99[16;40H98[18;55H6[18;69H6
5117[43d[11;12Hlink w/ 4 Good: 19648500 Bad: 30908567[12;29H9010473[12;47H46596[13;29H83752[13;45H73318[14;12Hlink w/ 3 Good: 19387587 Bad: 31169484[15;25H30[15;39H9[16;25H532[16;39H531[18;54H40[18;68H40
5118[43d[11;31H74391[11;47H73073[12;12Hno link Good: 19034912 Bad: 31612553[K[13;28H308821[13;44H338645[14;20H2[14;30H41282[14;46H234641[15;26H2[15;38H31[16;26H65[16;40H64[18;55H4[18;69H4
5119[43d[11;12Hno link Good: 19693442 Bad: 31044416[K[12;29H52549[12;45H85311[13;12Hlink w/ 4 Good: 19327054 Bad: 31410807[14;12Hno link Good: 19431372 Bad: 31306490[K[15;26H5[15;39H4[15;61H8[16;26H98[16;40H97[18;55H8[18;69H8
5120[43d[11;28H741303[11;45H86953[12;29H99634[12;44H728623[13;12Hno link Good: 19374426 Bad: 31453832[K[14;29H79063[14;45H49196[15;26H7[15;39H6[16;25H631[16;39H630[18;54H52[18;68H52
5121[43d[11;29H87455[11;44H131190[12;28H14489[12;45H73752[13;12Hlink w/ 2 Good: 19420024 Bad: 31498623[14;28H52480[14;45H93845[15;25H40[15;39H9[16;26H65[16;40H64[18;55H6[18;69H6
5122[43d[11;28H806721[11;44H202327[12;29H62505[12;44H846544[13;12Hno link Good: 19438330 Bad: 31570720[K[14;29H43314[14;44H465737[15;26H2[15;38H41[16;26H98[16;40H97[18;54H60[18;68H60
5123[43d[11;12Hlink w/ 2 Good: 19839690 Bad: 31259752[12;29H94209[12;44H90523[13;12Hlink w/ 2 Good: 19470529 Bad: 31628915[14;29H75822[14;44H523623[15;26H4[15;39H3[16;25H731[16;39H730[18;55H4[18;69H4
5124[43d[11;20H3[11;31H92748[11;47H9709[12;12Hlink w/ 3 Good: 19246541 Bad: 31943301[13;20H1[13;30H523231[13;47H66612[14;28H628628[14;45H61216[15;26H7[15;39H6[15;61H7[16;26H64[16;40H63[18;55H8[18;69H8
5125[43d[11;20H2[11;30H92509[11;46H355139[12;12Hno link Good: 19277713 Bad: 32002525[K[13;12Hno link Good: 19554885 Bad: 31725354[K[14;29H60471[14;44H619769[15;26H9[15;39H8[16;26H97[16;40H96[18;54H72[18;68H72
5126[43d[11;12Hno link Good: 19944269 Bad: 31426364[K[12;29H95252[12;45H75382[13;12Hlink w/ 2 Good: 19573178 Bad: 31797457[14;29H78975[14;45H91661[15;25H51[15;38H50[16;25H830[16;39H829[18;55H6[18;69H6
5127[43d[11;12Hlink w/ 4 Good: 19990922 Bad: 31470107[12;12Hlink w/ 1 Good: 19340993 Bad: 32120037[13;20H1[13;30H619317[13;46H841714[14;28H725318[14;44H735715[15;26H4[15;39H3[15;61H8[16;26H63[16;40H62[18;54H80[18;68H80
5128[43d[11;12Hno link Good: 20043921 Bad: 31507501[K[12;12Hno link Good: 19393365 Bad: 32158058[K[13;31H72003[13;47H79422[14;29H78174[14;45H73252[15;26H6[15;39H5[15;61H7[16;26H97[16;40H96[18;55H4[18;69H4
5129[43d[11;29H66985[11;45H74836[12;28H41494[12;44H226877[13;12Hno link Good: 19694320 Bad: 31947503[K[14;12Hlink w/ 2 Good: 19800622 Bad: 31841203[15;26H9[15;39H8[15;61H8[16;25H930[16;39H929[18;55H8[18;69H8
5130[43d[11;12Hlink w/ 3 Good: 20093350 Bad: 31638865[12;12Hlink w/ 4 Good: 19439975 Bad: 32292241[13;12Hlink w/ 2 Good: 19719989 Bad: 32012229[14;20H3[14;31H26643[14;46H905576[15;25H61[15;38H60[16;26H63[16;40H62[18;54H92[18;68H92
5131[43d[11;12Hno link Good: 20146450 Bad: 31676162[K[12;12Hno link Good: 19492321 Bad: 32330292[K[13;20H1[13;31H72652[13;47H49962[14;20H2[14;31H79405[14;47H43211[15;26H3[15;39H2[16;26H96[16;40H95[18;55H6[18;69H6
5132[43d[11;29H85431[11;44H727574[12;28H530260[12;45H82747[13;12Hno link Good: 19811045 Bad: 32101963[K[14;12Hno link Good: 19917913 Bad: 31995096[K[15;26H6[15;39H5[15;61H9[16;24H9029[16;38H9028[18;53H300[18;67H300
5133[43d[11;28H20460[11;45H98805[12;29H47878[12;44H455529[13;29H29326[13;45H74082[14;12Hlink w/ 1 Good: 19936422 Bad: 32066987[15;26H8[15;39H7[15;61H7[16;26H62[16;40H61[18;55H4[18;69H4
5134[43d[11;12Hlink w/ 2 Good: 20244672 Bad: 31849125[12;12Hlink w/ 3 Good: 19586986 Bad: 32506812[13;12Hlink w/ 4 Good: 19868830 Bad: 32224970[14;12Hno link Good: 19976093 Bad: 32117708[K[15;25H70[15;39H9[16;26H95[16;40H94[18;55H8[18;69H8
5135[43d[11;20H4[11;31H97753[11;47H86443[12;12Hno link Good: 19639328 Bad: 32544869[K[13;12Hno link Good: 19921524 Bad: 32262674[K[14;26H20028814[14;45H55386[15;26H3[15;38H72[16;25H129[16;39H128[18;54H12[18;68H12
5136[43d[11;12Hno link Good: 20323124 Bad: 31951470[K[12;29H6323[12;44H611357[13;29H45999[13;44H328597[14;29H53592[14;44H221005[15;26H5[15;39H4[16;26H62[16;40H61[18;55H6[18;69H6
5137[43d[11;29H42287[11;43H2022702[12;29H80891[12;45H84099[13;29H64220[13;44H400771[14;29H72125[14;45H92867[15;26H8[15;39H7[15;61H8[16;26H95[16;40H94[18;54H20[18;68H20
5138[43d[11;12Hlink w/ 3 Good: 20390593 Bad: 32064790[12;12Hlink w/ 1 Good: 19728412 Bad: 32726973[13;26H20012158[13;45H43228[14;12Hlink w/ 2 Good: 20120119 Bad: 32335268[15;25H80[15;39H9[16;25H228[16;39H227[18;55H4[18;69H4
5139[43d[11;12Hno link Good: 20436143 Bad: 32109637[K[12;12Hno link Good: 19772961 Bad: 32772821[K[13;12Hlink w/ 2 Good: 20057196 Bad: 32488587[14;12Hno link Good: 20165187 Bad: 32380597[K[15;26H2[15;38H81[16;26H61[16;40H60[18;55H8[18;69H8
5140[43d[11;29H55319[11;45H80858[12;29H90546[12;44H845633[13;12Hno link Good: 20075483 Bad: 32560697[K[14;29H83808[14;44H452373[15;26H5[15;39H4[16;26H94[16;40H93[18;54H32[18;68H32
5141[43d[11;29H83486[11;44H243087[12;12Hlink w/ 4 Good: 19817474 Bad: 32909100[13;12Hlink w/ 1 Good: 20102792 Bad: 32623783[14;12Hlink w/ 1 Good: 20211452 Bad: 32515124[15;26H7[15;39H6[16;25H327[16;39H326[18;55H6[18;69H6
5142[43d[11;28H502619[11;44H314352[12;12Hno link Good: 19835031 Bad: 32981941[K[13;12Hno link Good: 20121033 Bad: 32695941[K[14;20H2[14;31H3006[14;47H86913[15;25H90[15;39H9[15;61H7[16;26H61[16;40H60[18;54H40[18;68H40
5143[43d[11;12Hlink w/ 4 Good: 20543012 Bad: 32364354[12;29H74409[12;43H3032959[13;12Hlink w/ 4 Good: 20160896 Bad: 32746473[14;20H1[14;31H70053[14;46H637317[15;26H2[15;38H91[16;26H94[16;40H93[18;55H4[18;69H4
5144[43d[11;12Hno link Good: 20596104 Bad: 32401659[K[12;28H926830[12;45H70935[13;20H1[13;30H213554[13;47H84212[14;20H3[14;30H322855[14;47H74912[15;26H4[15;39H3[16;25H427[16;39H426[18;55H8[18;69H8
5145[43d[11;28H621031[11;45H67128[12;29H50489[12;44H137671[13;31H37771[13;46H850391[14;12Hno link Good: 20347196 Bad: 32740967[K[15;26H7[15;39H6[15;61H8[16;26H60[16;40H59[18;54H52[18;68H52
5146[43d[11;29H4024[11;44H538314[12;29H68081[12;44H210475[13;12Hno link Good: 20255968 Bad: 32922589[K[14;29H65753[14;44H812805[15;26H9[15;39H8[16;26H93[16;40H92[18;55H6[18;69H6
5147[43d[11;29H8980[11;45H79148[12;12Hlink w/ 1 Good: 20016842 Bad: 33252109[13;28H304984[13;45H63968[14;12Hlink w/ 1 Good: 20414999 Bad: 32853954[15;24H401[15;37H400[16;25H526[16;39H525[18;54H60[18;68H60
5148[43d[11;28H735158[11;44H624187[12;12Hno link Good: 20061131 Bad: 33298216[K[13;29H49716[13;43H3009632[14;12Hno link Good: 20459825 Bad: 32899524[K[15;26H4[15;39H3[16;26H59[16;40H58[18;55H4[18;69H4
5149[43d[11;29H54325[11;45H95419[12;29H78755[12;44H370990[13;29H68061[13;45H81685[14;29H78251[14;44H971496[15;26H6[15;39H5[16;26H93[16;40H92[18;55H8[18;69H8
5150[43d[11;29H88171[11;44H751967[12;28H11143[12;44H428704[13;28H401206[13;44H138934[14;28H511595[14;43H3028547[15;26H9[15;39H8[15;61H9[16;25H626[16;39H625[18;54H72[18;68H72
5151[43d[11;12Hlink w/ 4 Good: 20841234 Bad: 32789297[12;12Hlink w/ 1 Good: 20163762 Bad: 33466770[13;12Hlink w/ 1 Good: 20453790 Bad: 33176743[14;29H64399[14;45H66135[15;25H11[15;38H10[15;61H7[16;26H59[16;40H58[18;55H6[18;69H6
5152[43d[11;12Hno link Good: 20872835 Bad: 32848098[K[12;12Hno link Good: 20194126 Bad: 33526808[K[13;20H2[13;31H84545[13;46H236390[14;29H95461[14;44H12547[15;26H3[15;39H2[16;26H92[16;40H91[18;54H80[18;68H80
5153[43d[11;29H91879[11;44H919449[12;28H211660[12;45H99669[13;12Hno link Good: 20502774 Bad: 33308556[K[14;12Hlink w/ 3 Good: 20614064 Bad: 33197267[15;26H6[15;39H5[15;61H8[16;25H725[16;39H724[18;55H4[18;69H4
5154[43d[11;28H939398[11;45H62326[12;12Hlink w/ 4 Good: 20258390 Bad: 33643335[13;29H49838[13;45H51888[14;12Hno link Good: 20661309 Bad: 33240418[K[15;26H8[15;39H7[15;61H7[16;26H58[16;40H57[18;55H8[18;69H8
5155[43d[11;29H92463[11;45H99657[12;12Hno link Good: 20310691 Bad: 33681430[K[13;12Hlink w/ 1 Good: 20602499 Bad: 33389623[14;12Hlink w/ 3 Good: 20714095 Bad: 33278029[15;25H20[15;39H9[16;26H92[16;40H91[18;54H92[18;68H92
5156[43d[11;12Hlink w/ 4 Good: 21014681 Bad: 33067835[12;29H31486[12;44H751031[13;12Hno link Good: 20623933 Bad: 33458585[K[14;12Hno link Good: 20735659 Bad: 33346860[K[15;26H3[15;38H22[15;61H8[16;25H825[16;39H824[18;55H6[18;69H6
5157[43d[11;12Hno link Good: 21041831 Bad: 33131081[K[12;12Hlink w/ 4 Good: 20357577 Bad: 33815336[13;29H50462[13;44H522452[14;12Hlink w/ 3 Good: 20762395 Bad: 33410521[15;26H5[15;39H4[16;26H58[16;40H57[18;53H400[18;67H400
5158[43d[11;29H94906[11;45H68403[12;20H1[12;30H409879[12;47H53431[13;28H703187[13;45H60124[14;12Hno link Good: 20815148 Bad: 33448164[K[15;26H8[15;39H7[15;61H9[16;26H91[16;40H90[18;55H4[18;69H4
5159[43d[11;12Hlink w/ 3 Good: 21132996 Bad: 33220707[12;31H46833[12;46H90687[13;29H40584[13;44H613122[14;12Hlink w/ 3 Good: 20852785 Bad: 33500922[15;25H30[15;39H9[15;61H7[16;25H924[16;39H923[18;55H8[18;69H8
5160[43d[11;12Hno link Good: 21152146 Bad: 33291954[K[12;20H4[12;31H6451[12;47H79588[13;29H58949[13;45H85153[14;12Hno link Good: 20871291 Bad: 33572813[K[15;26H2[15;38H31[16;26H57[16;40H56[18;54H12[18;68H12
5161[43d[11;12Hlink w/ 3 Good: 21193147 Bad: 33341343[12;12Hno link Good: 20504462 Bad: 34030030[K[13;12Hlink w/ 1 Good: 20799344 Bad: 33735149[14;12Hlink w/ 3 Good: 20911893 Bad: 33622601[15;26H5[15;39H4[16;26H90[16;40H89[18;55H6[18;69H6
5162[43d[11;20H4[11;30H24623[11;47H78656[12;12Hlink w/ 4 Good: 20556878 Bad: 34068016[13;12Hno link Good: 20851961 Bad: 33772934[K[14;31H64659[14;47H60237[15;26H7[15;39H6[16;23H20024[16;37H20023[18;54H20[18;68H20
5163[43d[11;31H70592[11;46H444697[12;20H3[12;31H79781[12;46H135510[13;29H75605[13;44H839687[14;12Hno link Good: 20988413 Bad: 33726880[K[15;26H9[15;39H8[16;26H57[16;40H56[18;55H4[18;69H4
5164[43d[11;12Hno link Good: 21289717 Bad: 33515967[K[12;12Hno link Good: 20597276 Bad: 34208410[K[13;29H93913[13;44H911774[14;27H1006918[14;45H9877[15;25H42[15;38H41[15;61H8[16;26H90[16;40H89[18;55H8[18;69H8
5165[43d[11;12Hlink w/ 2 Good: 21338996 Bad: 33557081[12;12Hlink w/ 4 Good: 20645776 Bad: 34250302[13;12Hlink w/ 2 Good: 20942767 Bad: 33953312[14;12Hlink w/ 3 Good: 21055959 Bad: 33840121[15;26H4[15;39H3[16;25H123[16;39H122[18;54H32[18;68H32
5166[43d[11;20H4[11;31H83684[11;46H60279[12;12Hno link Good: 20689571 Bad: 34296905[K[13;20H4[13;31H86970[13;47H99508[14;12Hno link Good: 21100285 Bad: 33886194[K[15;26H7[15;39H6[16;26H56[16;40H55[18;55H6[18;69H6
5167[43d[11;20H3[11;30H40277[11;47H74100[12;28H7071[12;44H3697[13;29H1005201[13;45H4071676[14;29H18752[14;44H958126[15;26H9[15;39H8[16;26H89[16;40H88[18;54H40[18;68H40
5168[43d[11;12Hno link Good: 21430939 Bad: 33736329[K[12;12Hlink w/ 3 Good: 20734154 Bad: 34433115[13;12Hno link Good: 21032729 Bad: 34134542[K[14;29H46498[14;43H4020774[15;25H51[15;38H50[15;61H6[16;25H222[16;39H221[18;55H4[18;69H4
5169[43d[11;12Hlink w/ 3 Good: 21450063 Bad: 33807605[12;20H1[12;31H51772[12;46H505897[13;29H50958[13;44H20671[14;29H65087[14;45H9258[15;26H4[15;39H3[15;61H7[16;26H56[16;40H55[18;55H8[18;69H8
5170[43d[11;12Hno link Good: 21491361 Bad: 33856700[K[12;20H3[12;31H92027[12;47H56035[13;29H91630[13;45H56433[14;12Hlink w/ 3 Good: 21205901 Bad: 34142164[15;26H6[15;39H5[16;26H89[16;40H88[18;54H52[18;68H52
5171[43d[11;12Hlink w/ 2 Good: 21544347 Bad: 33894111[12;20H1[12;30H844336[12;47H94124[13;28H144347[13;45H94114[14;12Hno link Good: 21258710 Bad: 34179752[K[15;26H8[15;39H7[16;25H322[16;39H321[18;55H6[18;69H6
5172[43d[11;12Hno link Good: 21568510 Bad: 33960346[K[12;12Hno link Good: 20866990 Bad: 34661867[K[13;29H67662[13;44H361197[14;12Hlink w/ 2 Good: 21282250 Bad: 34246610[15;25H61[15;38H60[15;61H8[16;26H55[16;40H54[18;54H60[18;68H60
5173[43d[11;29H87625[11;43H403162[12;29H84676[12;44H734576[13;29H85899[13;44H433354[14;30H300801[14;46H318453[15;26H3[15;39H2[16;26H88[16;40H87[18;55H4[18;69H4
5174[43d[11;12Hlink w/ 2 Good: 21638107 Bad: 34071541[12;12Hlink w/ 1 Good: 20934359 Bad: 34775289[13;12Hlink w/ 1 Good: 21235894 Bad: 34473756[14;20H3[14;31H50929[14;47H58722[15;26H6[15;39H5[16;25H421[16;39H420[18;55H8[18;69H8
5175[43d[11;12Hno link Good: 21682475 Bad: 34117566[K[12;12Hno link Good: 20977737 Bad: 34822305[K[13;12Hno link Good: 21279772 Bad: 34520271[K[14;12Hno link Good: 21394806 Bad: 34405238[K[15;26H8[15;39H7[16;26H54[16;40H53[18;54H72[18;68H72
5176[43d[11;12Hlink w/ 2 Good: 21701567 Bad: 34188872[12;29H95402[12;45H95038[13;29H98077[13;45H92365[14;28H413368[14;45H77075[15;25H70[15;39H9[16;26H88[16;40H87[18;55H6[18;69H6
5177[43d[11;12Hno link Good: 21736255 Bad: 34244581[K[12;12Hlink w/ 4 Good: 21028808 Bad: 34952029[13;12Hlink w/ 4 Good: 21332048 Bad: 34648791[14;12Hlink w/ 1 Good: 21447650 Bad: 34533190[15;26H3[15;38H72[15;61H7[16;25H521[16;39H520[18;54H80[18;68H80
5178[43d[11;12Hlink w/ 4 Good: 21789391 Bad: 34281840[12;31H81137[12;47H90096[13;12Hno link Good: 21384748 Bad: 34686486[K[14;20H2[14;30H500395[14;47H7084[15;26H5[15;39H4[16;26H54[16;40H53[18;55H4[18;69H4
5179[43d[11;12Hno link Good: 21820099 Bad: 34341852[K[12;12Hno link Good: 21110614 Bad: 35051338[K[13;28H414674[13;44H747280[14;12Hno link Good: 21530564 Bad: 34631391[K[15;26H7[15;39H6[16;26H87[16;40H86[18;55H8[18;69H8
5180[43d[11;29H39256[11;44H413093[12;29H28053[12;44H124297[13;29H32955[13;44H819396[14;29H49098[14;44H703254[15;25H80[15;39H9[16;25H620[16;39H619[18;54H92[18;68H92
5181[43d[11;12Hlink w/ 3 Good: 21887814 Bad: 34454931[12;12Hlink w/ 1 Good: 21175733 Bad: 35167014[13;12Hlink w/ 4 Good: 21481079 Bad: 34861669[14;12Hlink w/ 2 Good: 21597381 Bad: 34745368[15;26H2[15;38H81[16;26H53[16;40H52[18;55H6[18;69H6
5182[43d[11;20H4[11;30H940845[11;47H92296[12;20H3[12;30H228049[12;46H205093[13;20H2[13;30H5337[13;47H99365[14;12Hno link Good: 21650208 Bad: 34782937[K[15;26H5[15;39H4[15;61H8[16;26H87[16;40H86[18;53H500[18;67H500
5183[43d[11;12Hno link Good: 21962038 Bad: 34561500[K[12;20H4[12;31H47802[12;47H75737[13;12Hno link Good: 21554237 Bad: 34969303[K[14;12Hlink w/ 1 Good: 21670703 Bad: 34852838[15;26H7[15;39H6[16;25H720[16;39H719[18;55H4[18;69H4
5184[43d[11;12Hlink w/ 3 Good: 21990320 Bad: 34623611[12;20H3[12;31H74871[12;46H339061[13;12Hlink w/ 1 Good: 21581826 Bad: 35032108[14;31H98556[14;46H915379[15;26H9[15;39H8[16;26H53[16;40H52[18;55H8[18;69H8
5185[43d[11;12Hno link Good: 22043424 Bad: 34660906[K[12;20H1[12;30H327138[12;47H77194[13;20H2[13;30H634533[13;47H69800[14;20H3[14;30H751264[14;47H53070[15;25H92[15;38H91[16;26H86[16;40H85[18;54H12[18;68H12
5186[43d[11;29H8049[11;44H714231[12;12Hno link Good: 21363056 Bad: 35431670[K[13;12Hno link Good: 21670873 Bad: 35123855[K[14;12Hno link Good: 21787836 Bad: 35006893[K[15;26H4[15;39H3[15;61H7[16;25H819[16;39H818[18;55H6[18;69H6
5187[43d[11;12Hlink w/ 4 Good: 22099524 Bad: 34785599[12;29H80770[12;44H504355[13;29H89165[13;45H95961[14;12Hlink w/ 2 Good: 21806323 Bad: 35078804[15;26H7[15;39H6[16;26H52[16;40H51[18;54H20[18;68H20
5188[43d[11;20H2[11;30H141395[11;46H834121[12;28H421784[12;45H53733[13;12Hlink w/ 4 Good: 21730528 Bad: 35244991[14;12Hno link Good: 21847964 Bad: 35127556[K[15;26H9[15;39H8[16;26H85[16;40H84[18;55H4[18;69H4
5189[43d[11;31H94452[11;47H71460[12;12Hlink w/ 4 Good: 21474097 Bad: 35591816[13;12Hno link Good: 21783219 Bad: 35282695[K[14;28H90074[14;45H65171[15;24H501[15;37H500[16;25H919[16;39H918[18;55H8[18;69H8
5190[43d[11;12Hno link Good: 22217987 Bad: 34938324[K[12;20H1[12;31H9591[12;46H660395[13;12Hlink w/ 1 Good: 21805828 Bad: 35350486[14;12Hlink w/ 1 Good: 21923498 Bad: 35232817[15;26H4[15;39H3[15;61H8[16;26H52[16;40H51[18;54H32[18;68H32
5191[43d[11;29H37153[11;43H500955[12;20H3[12;30H513554[12;46H733154[13;12Hno link Good: 21824086 Bad: 35422623[K[14;12Hno link Good: 21942074 Bad: 35304636[K[15;26H6[15;39H5[16;26H85[16;40H84[18;55H6[18;69H6
5192[43d[11;29H88359[11;45H48742[12;31H63923[12;47H73179[13;12Hlink w/ 1 Good: 21874820 Bad: 35462283[14;12Hlink w/ 3 Good: 21992974 Bad: 35344130[15;26H8[15;39H7[16;24H1018[16;38H1017[18;54H40[18;68H40
5193[43d[11;28H332071[11;45H95427[12;30H606618[12;46H820881[13;12Hno link Good: 21917983 Bad: 35509518[K[14;12Hno link Good: 22036215 Bad: 35391287[K[15;25H11[15;38H10[16;26H51[16;40H50[18;55H4[18;69H4
5194[43d[11;29H51224[11;44H166665[12;12Hno link Good: 21624272 Bad: 35893619[K[13;12Hlink w/ 2 Good: 21936223 Bad: 35581669[14;12Hlink w/ 1 Good: 22054608 Bad: 35463285[15;26H3[15;39H2[16;26H84[16;40H83[18;55H8[18;69H8
5195[43d[11;12Hlink w/ 4 Good: 22379436 Bad: 35228853[12;12Hlink w/ 3 Good: 21651239 Bad: 35957052[13;12Hno link Good: 21963589 Bad: 35644703[K[14;31H82283[14;46H526010[15;26H6[15;39H5[15;61H7[16;25H117[16;39H116[18;54H52[18;68H52
5196[43d[11;12Hno link Good: 22398445 Bad: 35300243[K[12;12Hno link Good: 21668841 Bad: 36029848[K[13;29H81892[13;44H716799[14;12Hno link Good: 22100731 Bad: 35597961[K[15;26H8[15;39H7[16;26H51[16;40H50[18;55H6[18;69H6
5197[43d[11;12Hlink w/ 4 Good: 22440696 Bad: 35348386[12;12Hlink w/ 1 Good: 21710096 Bad: 36078987[13;27H2023607[13;45H65477[14;29H42666[14;44H646419[15;25H20[15;39H9[16;26H84[16;40H83[18;54H60[18;68H60
5198[43d[11;12Hno link Good: 22493839 Bad: 35385640[K[12;12Hno link Good: 21762470 Bad: 36117010[K[13;12Hlink w/ 2 Good: 22076199 Bad: 35803283[14;29H95464[14;45H840[15;26H3[15;38H22[15;61H8[16;25H217[16;39H216[18;55H4[18;69H4
5199[43d[11;12Hlink w/ 2 Good: 22516873 Bad: 35453004[12;12Hlink w/ 3 Good: 21784068 Bad: 36185811[13;12Hno link Good: 22098442 Bad: 35871438[K[14;28H217952[14;44H75192[15;26H5[15;39H4[16;26H50[16;40H49[18;55H8[18;69H8
5200[43d[11;12Hno link Good: 22535904 Bad: 35524368[K[12;12Hno link Good: 21801764 Bad: 36258509[K[13;28H116809[13;44H943465[14;29H36437[14;44H823838[15;26H7[15;39H6[15;61H7[16;26H83[16;40H82[18;54H72[18;68H72
5201[43d[11;12Hlink w/ 2 Good: 22587323 Bad: 35563345[12;29H52516[12;45H98153[13;12Hlink w/ 2 Good: 22167839 Bad: 35982832[14;12Hlink w/ 2 Good: 22287515 Bad: 35863157[15;25H30[15;39H9[15;61H8[16;25H316[16;39H315[18;55H6[18;69H6
5202[43d[11;12Hno link Good: 22630752 Bad: 35610312[K[12;29H94847[12;44H346218[13;12Hno link Good: 22210569 Bad: 36030497[K[14;12Hno link Good: 22330356 Bad: 35910711[K[15;26H2[15;38H31[16;26H49[16;40H48[18;54H80[18;68H80
5203[43d[11;29H49824[11;45H81637[12;28H91253[12;44H418925[13;29H28764[13;44H102699[14;12Hlink w/ 3 Good: 22349006 Bad: 35982459[15;26H5[15;39H4[15;61H9[16;26H83[16;40H82[18;55H4[18;69H4
5204[43d[11;12Hlink w/ 2 Good: 22685472 Bad: 35736384[12;12Hlink w/ 4 Good: 21947201 Bad: 36474657[13;12Hlink w/ 2 Good: 22263904 Bad: 36157955[14;12Hno link Good: 22384355 Bad: 36037505[K[15;26H7[15;39H6[15;61H7[16;25H416[16;39H415[18;55H8[18;69H8
5205[43d[11;20H3[11;30H738531[11;47H73722[12;31H99513[12;46H512742[13;20H1[13;30H316561[13;47H9569[14;12Hlink w/ 3 Good: 22437125 Bad: 36075132[15;26H9[15;39H8[16;26H49[16;40H48[18;54H92[18;68H92
5206[43d[11;12Hno link Good: 22768241 Bad: 35834408[K[12;29H2027732[12;47H74918[13;12Hno link Good: 22345472 Bad: 36257179[K[14;12Hno link Good: 22466169 Bad: 36136484[K[15;25H42[15;38H41[16;26H82[16;40H81[18;55H6[18;69H6
5207[43d[11;29H8725[11;44H905792[12;12Hno link Good: 22045290 Bad: 36647754[K[13;29H63711[13;44H329334[14;29H84652[14;44H20839[15;26H4[15;39H3[16;25H515[16;39H514[18;53H600[18;67H600
5208[43d[11;28H836638[11;45H46804[12;29H93832[12;45H89611[13;12Hlink w/ 2 Good: 22412705 Bad: 36370739[14;12Hlink w/ 3 Good: 22533762 Bad: 36249684[15;26H6[15;39H5[16;26H48[16;40H47[18;55H4[18;69H4
5209[43d[11;12Hlink w/ 4 Good: 22889700 Bad: 35984136[12;28H14618[12;44H727656[13;20H1[13;31H65361[13;46H408478[14;31H86638[14;47H87202[15;26H9[15;39H8[15;61H8[16;26H81[16;40H80[18;55H8[18;69H8
5210[43d[11;30H910971[11;45H6053262[12;29H65830[12;45H98404[13;12Hno link Good: 22485692 Bad: 36478543[K[14;12Hno link Good: 22607085 Bad: 36357151[K[15;25H51[15;38H50[16;25H615[16;39H614[18;54H12[18;68H12
5211[43d[11;12Hno link Good: 22940193 Bad: 36114437[K[12;12Hlink w/ 4 Good: 22193796 Bad: 36860836[13;28H514218[13;44H540415[14;12Hlink w/ 1 Good: 22635698 Bad: 36418936[15;26H4[15;39H3[16;26H48[16;40H47[18;55H6[18;69H6
5212[43d[11;29H93275[11;45H51750[12;20H1[12;30H246139[12;47H98887[13;12Hlink w/ 1 Good: 22566891 Bad: 36578136[14;20H3[14;31H88564[14;47H56465[15;26H6[15;39H5[16;26H81[16;40H80[18;54H20[18;68H20
5213[43d[11;27H3029449[11;44H205973[12;12Hno link Good: 22281260 Bad: 36954163[K[13;12Hno link Good: 22602444 Bad: 36632981[K[14;12Hno link Good: 22724317 Bad: 36511109[K[15;26H8[15;39H7[15;61H7[16;25H714[16;39H713[18;55H4[18;69H4
5214[43d[11;12Hlink w/ 3 Good: 23048621 Bad: 36277198[12;29H98785[12;43H7027035[13;29H20610[13;44H70521[14;29H42811[14;45H83011[15;25H61[15;38H60[16;26H47[16;40H46[18;55H8[18;69H8
5215[43d[11;12Hno link Good: 23091512 Bad: 36324700[K[12;12Hlink w/ 4 Good: 22340644 Bad: 37075569[13;12Hlink w/ 4 Good: 22662931 Bad: 36753284[14;12Hlink w/ 1 Good: 22785276 Bad: 36630940[15;26H3[15;39H2[16;26H80[16;40H79[18;54H32[18;68H32
5216[43d[11;28H144594[11;45H62014[12;31H92897[12;46H113712[13;20H2[13;30H71559[13;47H91019[14;12Hno link Good: 22838058 Bad: 36668553[K[15;26H5[15;39H4[16;25H813[16;39H812[18;55H6[18;69H6
5217[43d[11;12Hlink w/ 4 Good: 23167145 Bad: 36429861[12;12Hno link Good: 22413955 Bad: 37183053[K[13;12Hno link Good: 22737311 Bad: 36859698[K[14;29H59842[14;44H737168[15;26H8[15;39H7[15;61H8[16;26H47[16;40H46[18;54H40[18;68H40
5218[43d[11;12Hno link Good: 23186212 Bad: 36501186[K[12;29H31659[12;44H255740[13;29H55605[13;44H931796[14;29H78405[14;44H808997[15;25H70[15;39H9[16;26H80[16;40H79[18;55H4[18;69H4
5219[43d[11;12Hlink w/ 2 Good: 23238410 Bad: 36539387[12;12Hlink w/ 1 Good: 22483083 Bad: 37294715[13;12Hlink w/ 2 Good: 22807352 Bad: 36970447[14;12Hlink w/ 3 Good: 22930253 Bad: 36847547[15;26H3[15;38H72[16;25H913[16;39H912[18;55H8[18;69H8
5220[43d[11;12Hno link Good: 23281191 Bad: 36587002[K[12;12Hno link Good: 22524870 Bad: 37343324[K[13;12Hno link Good: 22849551 Bad: 37018644[K[14;12Hno link Good: 22972556 Bad: 36895640[K[15;26H5[15;39H4[16;26H46[16;40H45[18;54H52[18;68H52
5221[43d[11;28H300230[11;44H658361[12;29H42433[12;44H416159[13;29H67815[13;45H90778[14;29H91132[14;44H967462[15;26H7[15;39H6[16;26H79[16;40H78[18;55H6[18;69H6
5222[43d[11;29H28444[11;44H720542[12;29H69392[12;45H79595[13;29H9523[13;44H153753[14;12Hlink w/ 2 Good: 23018765 Bad: 37030225[15;25H80[15;39H9[15;61H7[16;24H2012[16;38H2011[18;54H60[18;68H60
5223[43d[11;29H47528[11;45H91856[12;29H87054[12;44H552331[13;28H913543[13;44H22584[14;12Hno link Good: 23037271 Bad: 37102116[K[15;26H2[15;38H81[16;26H45[16;40H44[18;55H4[18;69H4
5224[43d[11;12Hlink w/ 4 Good: 23390660 Bad: 36839118[12;28H629283[12;44H600496[13;12Hlink w/ 4 Good: 22956250 Bad: 37273530[14;29H80076[14;45H49705[15;26H4[15;39H3[16;26H79[16;40H78[18;55H8[18;69H8
5225[43d[11;30H443701[11;47H76474[12;12Hlink w/ 4 Good: 22681626 Bad: 37638551[13;12Hno link Good: 23008939 Bad: 37311239[K[14;12Hlink w/ 1 Good: 23132842 Bad: 37187337[15;26H7[15;39H6[15;61H8[16;25H112[16;39H111[18;54H72[18;68H72
5226[43d[11;12Hno link Good: 23465907 Bad: 36944665[K[12;12Hno link Good: 22702500 Bad: 37708073[K[13;29H30414[13;45H80160[14;12Hno link Good: 23154416 Bad: 37256160[K[15;26H9[15;39H8[15;61H7[16;26H45[16;40H44[18;55H6[18;69H6
5227[43d[11;29H85098[11;43H7015868[12;12Hlink w/ 4 Good: 22720041 Bad: 37780926[13;12Hlink w/ 1 Good: 23048729 Bad: 37452239[14;29H72992[14;44H327977[15;25H92[15;38H91[15;61H8[16;26H78[16;40H77[18;54H80[18;68H80
5228[43d[11;12Hlink w/ 2 Good: 23537491 Bad: 37053871[12;12Hno link Good: 22771669 Bad: 37819694[K[13;20H2[13;30H100646[13;47H90718[14;28H225093[14;45H66273[15;26H4[15;39H3[16;25H211[16;39H210[18;55H4[18;69H4
5229[43d[11;12Hno link Good: 23580001 Bad: 37101759[K[12;28H81312[12;45H68632[13;12Hno link Good: 23142571 Bad: 37539192[K[14;29H6708[14;44H414681[15;26H6[15;39H5[16;26H44[16;40H43[18;55H8[18;69H8
5230[43d[11;29H99017[11;45H73137[12;29H30712[12;44H941444[13;29H60803[13;44H611354[14;29H855[14;45H86575[15;26H9[15;39H8[16;26H78[16;40H77[18;54H92[18;68H92
5231[43d[11;28H635576[11;44H226976[12;12Hlink w/ 3 Good: 22866208 Bad: 37996346[13;29H96756[13;45H65799[14;12Hlink w/ 1 Good: 23321793 Bad: 37540763[15;24H601[15;37H600[15;61H7[16;25H311[16;39H310[18;55H6[18;69H6
5232[43d[11;29H88672[11;45H64273[12;20H4[12;30H918584[12;45H8034362[13;12Hlink w/ 1 Good: 23249479 Bad: 37703468[14;12Hno link Good: 23374601 Bad: 37578348[K[15;26H4[15;39H3[16;26H44[16;40H43[18;53H700[18;67H700
5233[43d[11;28H717375[11;44H325970[12;12Hno link Good: 22946053 Bad: 38097293[K[13;12Hno link Good: 23277440 Bad: 37765907[K[14;28H402868[14;44H640481[15;26H6[15;39H5[16;26H77[16;40H76[18;55H4[18;69H4
5234[43d[11;29H36449[11;45H97291[12;29H63697[12;44H170045[13;29H95696[13;44H83804[14;12Hlink w/ 2 Good: 23421387 Bad: 37712357[15;26H8[15;39H7[16;25H410[16;39H409[18;55H8[18;69H8
5235[43d[11;12Hlink w/ 2 Good: 23786716 Bad: 37437422[12;12Hlink w/ 4 Good: 23013212 Bad: 38210928[13;12Hlink w/ 4 Good: 23345488 Bad: 37878653[14;20H3[14;31H71470[14;47H52672[15;25H11[15;38H10[15;61H8[16;26H43[16;40H42[18;54H12[18;68H12
5236[43d[11;30H839788[11;47H74743[12;31H65491[12;47H49041[13;31H98061[13;46H916472[14;12Hno link Good: 23524227 Bad: 37790307[K[15;26H3[15;39H2[16;26H76[16;40H75[18;55H6[18;69H6
5237[43d[11;12Hno link Good: 23860255 Bad: 37544672[K[12;12Hno link Good: 23084585 Bad: 38320343[K[13;30H417689[13;47H87240[14;29H44088[14;44H860843[15;26H5[15;39H4[16;25H510[16;39H509[18;54H20[18;68H20
5238[43d[11;12Hlink w/ 3 Good: 23890264 Bad: 37605059[12;12Hlink w/ 1 Good: 23113347 Bad: 38381977[13;12Hno link Good: 23447031 Bad: 38048294[K[14;12Hlink w/ 3 Good: 23573591 Bad: 37921735[15;26H8[15;39H7[16;26H43[16;40H42[18;55H4[18;69H4
5239[43d[11;20H2[11;30H943258[11;47H42462[12;20H3[12;31H65731[12;46H419991[13;29H99722[13;45H86001[14;20H1[14;30H626386[14;47H59338[15;25H20[15;39H9[16;26H76[16;40H75[18;55H8[18;69H8
5240[43d[11;12Hno link Good: 23978538 Bad: 37697578[K[12;12Hno link Good: 23199902 Bad: 38476215[K[13;28H53429[13;44H141826[14;12Hno link Good: 23661127 Bad: 38014992[K[15;26H3[15;38H22[15;61H7[16;25H609[16;39H608[18;54H32[18;68H32
5241[43d[11;29H97622[11;44H768891[12;28H21753[12;44H548982[13;29H52528[13;44H213988[14;12Hlink w/ 1 Good: 23679563 Bad: 38086954[15;26H5[15;39H4[16;26H42[16;40H41[18;55H6[18;69H6
5242[43d[11;12Hlink w/ 3 Good: 24041375 Bad: 37815534[12;12Hlink w/ 3 Good: 23260387 Bad: 38596523[13;12Hlink w/ 2 Good: 23595777 Bad: 38261135[14;12Hno link Good: 23722929 Bad: 38133984[K[15;26H7[15;39H6[16;26H75[16;40H74[18;54H40[18;68H40
5243[43d[11;20H2[11;31H94432[11;47H52873[12;12Hno link Good: 23312763 Bad: 38634543[K[13;12Hno link Good: 23648541 Bad: 38298766[K[14;29H75698[14;45H71610[15;25H30[15;39H9[15;61H8[16;25H708[16;39H707[18;55H4[18;69H4
5244[43d[11;12Hno link Good: 24116102 Bad: 37921601[K[12;29H32915[12;44H704789[13;29H69336[13;44H368369[14;29H96635[14;44H241071[15;26H2[15;38H31[16;26H42[16;40H41[18;55H8[18;69H8
5245[43d[11;12Hlink w/ 3 Good: 24135261 Bad: 37992836[12;12Hlink w/ 4 Good: 23350653 Bad: 38777446[13;29H87710[13;44H440390[14;28H815177[14;44H312925[15;26H4[15;39H3[16;26H75[16;40H74[18;54H52[18;68H52
5246[43d[11;12Hno link Good: 24188276 Bad: 38030216[K[12;20H3[12;30H403025[12;46H815468[13;12Hlink w/ 2 Good: 23740395 Bad: 38478099[14;29H67959[14;45H50536[15;26H7[15;39H6[16;25H808[16;39H807[18;55H6[18;69H6
5247[43d[11;12Hlink w/ 2 Good: 24230261 Bad: 38078627[12;12Hno link Good: 23443865 Bad: 38865024[K[13;12Hno link Good: 23781770 Bad: 38527120[K[14;12Hlink w/ 2 Good: 23909305 Bad: 38399586[15;26H9[15;39H8[16;26H41[16;40H40[18;54H60[18;68H60
5248[43d[11;12Hno link Good: 24249367 Bad: 38149917[K[12;29H61504[12;44H937781[13;28H800073[13;45H99213[14;12Hno link Good: 23927784 Bad: 38471503[K[15;25H42[15;38H41[15;61H9[16;26H74[16;40H73[18;55H4[18;69H4
5249[43d[11;29H77599[11;44H212082[12;29H88470[12;43H9001213[13;29H27480[13;44H662204[14;29H55418[14;44H534267[15;26H4[15;39H3[15;61H7[16;25H907[16;39H906[18;55H8[18;69H8
5250[43d[11;29H96647[11;45H83430[12;28H506185[12;45H7389[13;29H4572[13;44H734359[14;29H74067[14;44H606013[15;26H6[15;39H5[16;26H40[16;40H39[18;54H72[18;68H72
5251[43d[11;12Hlink w/ 2 Good: 24340693 Bad: 38329782[12;12Hlink w/ 1 Good: 23549323 Bad: 39121153[13;12Hlink w/ 2 Good: 23889232 Bad: 38781246[14;27H4017798[14;45H52681[15;26H9[15;39H8[15;61H8[16;26H74[16;40H73[18;55H6[18;69H6
5252[43d[11;12Hno link Good: 24393753 Bad: 38367118[K[12;12Hno link Good: 23601702 Bad: 39159170[K[13;12Hno link Good: 23941920 Bad: 38818953[K[14;12Hlink w/ 2 Good: 24070565 Bad: 38690309[15;25H51[15;38H50[15;61H7[16;24H3007[16;38H3006[18;54H80[18;68H80
5253[43d[11;28H415120[11;44H436142[12;29H21561[12;44H229702[13;29H62435[13;45H88829[14;12Hno link Good: 24091250 Bad: 38760015[K[15;26H3[15;39H2[16;26H40[16;40H39[18;55H4[18;69H4
5254[43d[11;29H34486[11;44H507176[12;12Hlink w/ 3 Good: 23639272 Bad: 39302392[13;29H80939[13;44H960726[14;12Hlink w/ 3 Good: 24109992 Bad: 38831674[15;26H6[15;39H5[15;61H8[16;26H73[16;40H72[18;55H8[18;69H8
5255[43d[11;12Hlink w/ 4 Good: 24487582 Bad: 38544476[12;20H1[12;31H91581[12;47H40479[13;12Hlink w/ 1 Good: 24033606 Bad: 38998455[14;31H62806[14;47H69256[15;26H8[15;39H7[16;25H106[16;39H105[18;54H92[18;68H92
5256[43d[11;12Hno link Good: 24529216 Bad: 38593240[K[12;12Hno link Good: 23732159 Bad: 39390298[K[13;12Hno link Good: 24074583 Bad: 39047875[K[14;12Hno link Good: 24203979 Bad: 38918480[K[15;25H61[15;38H60[16;26H39[16;40H38[18;55H6[18;69H6
5257[43d[11;29H48197[11;44H664654[12;29H49766[12;44H463086[13;12Hlink w/ 2 Good: 24092905 Bad: 39119949[14;12Hlink w/ 1 Good: 24222540 Bad: 38990315[15;26H3[15;39H2[16;26H72[16;40H71[18;53H800[18;67H800
5258[43d[11;29H85695[11;44H717543[12;12Hlink w/ 3 Good: 23786180 Bad: 39517059[13;30H12982[13;47H73415[14;20H2[14;31H59642[14;45H9043600[15;26H5[15;39H4[15;61H7[16;25H206[16;39H205[18;55H4[18;69H4
5259[43d[11;28H638784[11;45H54859[12;20H1[12;30H838545[12;47H5509[13;20H4[13;31H82558[13;46H211088[14;20H1[14;30H312420[14;47H81227[15;26H8[15;39H7[16;26H39[16;40H38[18;55H8[18;69H8
5260[43d[11;29H66772[11;44H817270[12;12Hno link Good: 23865043 Bad: 39619001[K[13;12Hno link Good: 24209700 Bad: 39274345[K[14;12Hno link Good: 24339798 Bad: 39144248[K[15;25H70[15;39H9[16;26H72[16;40H71[18;54H12[18;68H12
5261[43d[11;29H85921[11;45H88513[12;29H82681[12;45H91754[13;12Hlink w/ 2 Good: 24227959 Bad: 39346478[14;29H58336[14;44H216102[15;26H2[15;38H71[16;25H305[16;39H304[18;55H6[18;69H6
5262[43d[11;28H737073[11;44H927760[12;28H933110[12;44H73172[13;12Hno link Good: 24278684 Bad: 39386151[K[14;12Hlink w/ 3 Good: 24409316 Bad: 39255521[15;26H5[15;39H4[15;61H8[16;26H38[16;40H37[18;54H20[18;68H20
5263[43d[11;29H89662[11;45H65567[12;12Hlink w/ 4 Good: 23984971 Bad: 39770259[13;28H330927[13;44H424304[14;12Hno link Good: 24461556 Bad: 39293677[K[15;26H7[15;39H6[16;26H71[16;40H70[18;55H4[18;69H4
5264[43d[11;28H808881[11;43H9036744[12;12Hno link Good: 24002543 Bad: 39843083[K[13;12Hlink w/ 1 Good: 24349137 Bad: 39496490[14;29H80032[14;44H36559[15;25H80[15;39H9[16;25H404[16;39H403[18;55H8[18;69H8
5265[43d[11;12Hlink w/ 2 Good: 24839716 Bad: 39096304[12;12Hlink w/ 1 Good: 24032353 Bad: 39903668[13;20H4[13;31H79372[13;46H55665[14;12Hlink w/ 3 Good: 24510504 Bad: 39425520[15;26H2[15;38H81[16;26H38[16;40H37[18;54H32[18;68H32
5266[43d[11;20H4[11;31H92774[11;46H133643[12;12Hno link Good: 24084685 Bad: 39941733[K[13;12Hno link Good: 24432063 Bad: 39594356[K[14;12Hno link Good: 24563276 Bad: 39463144[K[15;26H4[15;39H3[16;26H71[16;40H70[18;55H6[18;69H6
5267[43d[11;30H927219[11;47H89595[12;28H117860[12;45H98955[13;29H65765[13;44H651051[14;12Hlink w/ 1 Good: 24597191 Bad: 39519627[15;26H7[15;39H6[15;61H7[16;25H504[16;39H503[18;54H40[18;68H40
5268[43d[11;12Hno link Good: 24946238 Bad: 39260968[K[12;29H35436[12;42H40071771[13;29H83969[13;44H723239[14;30H615584[14;47H91626[15;26H9[15;39H8[16;26H37[16;40H36[18;55H4[18;69H4
5269[43d[11;29H90882[11;44H306723[12;29H79143[12;44H118463[13;12Hlink w/ 2 Good: 24528094 Bad: 39769514[14;12Hno link Good: 24659912 Bad: 39637697[K[15;25H91[15;38H90[16;26H70[16;40H69[18;55H8[18;69H8
5270[43d[11;12Hlink w/ 2 Good: 25043939 Bad: 39344059[12;12Hlink w/ 3 Good: 24231408 Bad: 40156591[13;12Hno link Good: 24580774 Bad: 39807226[K[14;28H712644[14;45H7535[15;26H4[15;39H3[15;61H8[16;25H603[16;39H602[18;54H52[18;68H52
5271[43d[11;12Hno link Good: 25064762 Bad: 39413636[K[12;12Hno link Good: 24250708 Bad: 40227691[K[13;28H600737[13;45H77664[14;29H32770[14;44H745632[15;26H6[15;39H5[16;26H36[16;40H35[18;55H6[18;69H6
5272[43d[11;12Hlink w/ 2 Good: 25084753 Bad: 39484042[12;29H69145[12;45H9965[13;12Hlink w/ 1 Good: 24619901 Bad: 39948896[14;12Hlink w/ 2 Good: 24752194 Bad: 39816604[15;26H9[15;39H8[16;26H70[16;40H69[18;54H60[18;68H60
5273[43d[11;30H137880[11;46H521309[12;12Hlink w/ 1 Good: 24321478 Bad: 40337712[13;12Hno link Good: 24672519 Bad: 39986672[K[14;20H3[14;30H804987[14;47H54206[15;24H701[15;37H700[16;25H703[16;39H702[18;55H4[18;69H4
5274[43d[11;12Hno link Good: 25178880 Bad: 39570704[K[12;12Hno link Good: 24361492 Bad: 40388094[K[13;12Hlink w/ 2 Good: 24712921 Bad: 40036666[14;31H45453[14;46H904135[15;26H3[15;39H2[16;26H36[16;40H35[18;55H8[18;69H8
5275[43d[11;29H97935[11;44H642047[12;29H79004[12;44H460979[13;12Hno link Good: 24731242 Bad: 40108742[K[14;12Hno link Good: 24863909 Bad: 39976076[K[15;26H6[15;39H5[15;61H7[16;26H69[16;40H68[18;54H72[18;68H72
5276[43d[11;28H226277[11;44H704100[12;28H405887[12;44H524491[13;12Hlink w/ 1 Good: 24758757 Bad: 40171622[14;29H91618[14;42H40038762[15;26H8[15;39H7[16;25H802[16;39H801[18;55H6[18;69H6
5277[43d[11;29H45413[11;45H75362[12;29H23528[12;45H97248[13;20H2[13;31H77009[13;46H243768[14;28H910080[14;44H110699[15;25H11[15;38H10[15;61H8[16;26H35[16;40H34[18;54H80[18;68H80
5278[43d[11;12Hlink w/ 3 Good: 25290312 Bad: 39820859[12;29H67532[12;44H643640[13;30H821338[13;47H89836[14;29H54695[14;45H56480[15;26H3[15;39H2[15;61H7[16;26H68[16;40H67[18;55H4[18;69H4
5279[43d[11;12Hno link Good: 25343368 Bad: 39858191[K[12;12Hlink w/ 1 Good: 24519813 Bad: 40681748[13;20H1[13;31H74004[13;46H327558[14;12Hlink w/ 1 Good: 25007518 Bad: 40194045[15;26H5[15;39H4[16;25H902[16;39H901[18;55H8[18;69H8
5280[43d[11;29H63790[11;44H928173[12;12Hno link Good: 24538783 Bad: 40753181[K[13;12Hno link Good: 24893605 Bad: 40398360[K[14;12Hno link Good: 25027388 Bad: 40264578[K[15;26H8[15;39H7[15;61H8[16;26H35[16;40H34[18;54H92[18;68H92
5281[43d[11;12Hlink w/ 3 Good: 25383006 Bad: 39999348[12;29H56599[12;44H825756[13;28H911882[13;44H470475[14;29H46033[14;44H336325[15;25H20[15;39H9[16;26H68[16;40H67[18;55H6[18;69H6
5282[43d[11;12Hno link Good: 25436103 Bad: 40036650[K[12;12Hlink w/ 3 Good: 24608917 Bad: 40863837[13;29H6460[13;44H508154[14;29H98777[14;45H73980[15;26H2[15;38H21[16;24H4001[16;38H4000[18;53H900[18;67H900
5283[43d[11;12Hlink w/ 4 Good: 25476841 Bad: 40086310[12;20H4[12;31H48533[12;46H914619[13;27H5004835[13;45H58318[14;28H138991[14;44H424163[15;26H5[15;39H4[16;26H34[16;40H33[18;55H4[18;69H4
5284[43d[11;12Hno link Good: 25496056 Bad: 40157491[K[12;12Hno link Good: 24666271 Bad: 40987277[K[13;29H23146[13;44H630403[14;12Hlink w/ 2 Good: 25157505 Bad: 40496046[15;26H7[15;39H6[15;61H7[16;26H67[16;40H66[18;55H8[18;69H8
5285[43d[11;12Hlink w/ 2 Good: 25534452 Bad: 40209489[12;28H703539[12;43H1040403[13;29H6090[13;45H83037[14;12Hno link Good: 25195471 Bad: 40548474[K[15;25H30[15;39H9[16;25H100[16;40H99[18;54H12[18;68H12
5286[43d[11;12Hno link Good: 25587574 Bad: 40246762[K[12;12Hlink w/ 1 Good: 24755887 Bad: 41078451[13;28H11353[13;44H720803[14;12Hlink w/ 3 Good: 25248311 Bad: 40586029[15;26H2[15;38H31[16;26H34[16;39H133[18;55H6[18;69H6
5287[43d[11;28H614622[11;44H310114[12;12Hno link Good: 24781558 Bad: 41143179[K[13;12Hlink w/ 2 Good: 25139788 Bad: 40784950[14;12Hno link Good: 25274721 Bad: 40650018[K[15;26H4[15;39H3[16;26H67[16;40H66[18;54H20[18;68H20
5288[43d[11;29H33694[11;45H81435[12;29H99160[12;44H215971[13;12Hno link Good: 25157914 Bad: 40857218[K[14;29H93228[14;44H721905[15;26H7[15;39H6[15;61H8[16;25H200[16;40H99[18;55H4[18;69H4
5289[43d[11;12Hlink w/ 4 Good: 25685727 Bad: 40419801[12;28H85054[12;45H54989[13;12Hlink w/ 2 Good: 25209536 Bad: 40895994[14;28H34507[14;45H60453[15;26H9[15;39H8[16;26H33[16;39H232[18;55H8[18;69H8
5290[43d[11;20H3[11;30H737532[11;47H58393[12;12Hlink w/ 4 Good: 24901587 Bad: 41294339[13;12Hno link Good: 25260946 Bad: 40934981[K[14;29H96607[14;45H99322[15;25H41[15;38H40[16;26H66[16;40H65[18;54H32[18;68H32
5291[43d[11;12Hno link Good: 25756560 Bad: 40529761[K[12;12Hno link Good: 24919264 Bad: 41367058[K[13;12Hlink w/ 2 Good: 25279221 Bad: 41007102[14;28H415115[14;44H871209[15;26H4[15;39H3[16;26H99[16;40H98[18;55H6[18;69H6
5292[43d[11;12Hlink w/ 4 Good: 25788372 Bad: 40588342[12;29H49898[12;44H426817[13;12Hno link Good: 25310312 Bad: 41066405[K[14;12Hlink w/ 3 Good: 25446472 Bad: 40930246[15;26H6[15;39H5[16;25H332[16;39H331[18;54H40[18;68H40
5293[43d[11;30H841425[11;46H625687[12;12Hlink w/ 4 Good: 25002275 Bad: 41464838[13;12Hlink w/ 1 Good: 25362946 Bad: 41104169[14;20H2[14;31H99278[14;47H67838[15;26H9[15;39H8[15;61H7[16;26H66[16;40H65[18;55H4[18;69H4
5294[43d[11;31H75099[11;47H8240[12;12Hno link Good: 25034616 Bad: 41522891[K[13;12Hno link Good: 25395852 Bad: 41161657[K[14;12Hno link Good: 25532280 Bad: 41025230[K[15;25H51[15;38H50[16;26H99[16;40H98[18;55H8[18;69H8
5295[43d[11;12Hno link Good: 25894223 Bad: 40753681[K[12;29H52232[12;45H95674[13;28H414157[13;44H233750[14;29H50825[14;45H97083[15;26H3[15;39H2[16;25H432[16;39H431[18;54H52[18;68H52
5296[43d[11;12Hlink w/ 2 Good: 25939655 Bad: 40798646[12;12Hlink w/ 4 Good: 25096879 Bad: 41641424[13;29H59115[13;45H79189[14;12Hlink w/ 1 Good: 25596129 Bad: 41142176[15;26H6[15;39H5[15;61H8[16;26H65[16;40H64[18;55H6[18;69H6
5297[43d[11;31H92794[11;46H835902[12;30H149207[12;47H79490[13;12Hlink w/ 1 Good: 25511788 Bad: 41316910[14;20H3[14;30H648881[14;47H79819[15;26H8[15;39H7[16;26H98[16;40H97[18;54H60[18;68H60
5298[43d[11;12Hno link Good: 26012655 Bad: 40906436[K[12;12Hno link Good: 25167452 Bad: 41751641[K[13;31H30731[13;47H88363[14;12Hno link Good: 25667905 Bad: 41251190[K[15;25H60[15;39H9[15;61H7[16;25H531[16;39H530[18;55H4[18;69H4
5299[43d[11;29H33603[11;45H7588[12;12Hlink w/ 1 Good: 25186921 Bad: 41822569[13;20H2[13;31H50827[13;46H458664[14;12Hlink w/ 2 Good: 25688220 Bad: 41321273[15;26H3[15;38H62[15;61H8[16;26H65[16;40H64[18;55H8[18;69H8
5300[43d[11;12Hlink w/ 4 Good: 26086680 Bad: 41013204[12;20H3[12;30H239182[12;47H60703[13;12Hno link Good: 25603563 Bad: 41496323[K[14;12Hno link Good: 25740956 Bad: 41358932[K[15;26H5[15;39H4[16;26H98[16;40H97[18;54H72[18;68H72
5301[43d[11;12Hno link Good: 26126836 Bad: 41063447[K[12;12Hno link Good: 25278245 Bad: 41912039[K[13;29H43134[13;44H547151[14;12Hlink w/ 3 Good: 25780618 Bad: 41409669[15;26H8[15;39H7[16;25H631[16;39H630[18;55H6[18;69H6
5302[43d[11;29H45918[11;44H134761[12;29H95970[12;45H84710[13;29H61320[13;44H61936[14;12Hno link Good: 25799133 Bad: 41481549[K[15;25H70[15;39H9[15;61H7[16;26H64[16;40H63[18;54H80[18;68H80
5303[43d[11;29H74157[11;45H96916[12;28H322897[12;43H2048178[13;29H88742[13;45H82334[14;12Hlink w/ 3 Good: 25826875 Bad: 41544202[15;26H2[15;38H71[16;26H97[16;40H96[18;55H4[18;69H4
5304[43d[11;29H93255[11;44H268215[12;29H40621[12;44H120850[13;28H706989[13;44H754483[14;12Hno link Good: 25845459 Bad: 41616014[K[15;26H5[15;39H4[16;25H730[16;39H729[18;55H8[18;69H8
5305[43d[11;28H2390[11;44H312813[12;29H85597[12;45H66272[13;12Hlink w/ 1 Good: 25752259 Bad: 41799611[14;12Hlink w/ 3 Good: 25890916 Bad: 41660955[15;26H7[15;39H6[16;26H63[16;40H62[18;54H92[18;68H92
5306[43d[11;12Hlink w/ 4 Good: 26292181 Bad: 41350076[12;12Hlink w/ 1 Good: 25437896 Bad: 42204362[13;12Hno link Good: 25804959 Bad: 41837300[K[14;12Hno link Good: 25943720 Bad: 41698540[K[15;26H9[15;39H8[16;26H97[16;40H96[18;55H6[18;69H6
5307[43d[11;12Hno link Good: 26311835 Bad: 41420824[K[12;12Hno link Good: 25455947 Bad: 42276713[K[13;12Hlink w/ 2 Good: 25823683 Bad: 41908979[14;29H62617[14;44H770046[15;25H82[15;38H81[15;61H8[16;25H830[16;39H829[18;52H3000[18;66H3000
5308[43d[11;12Hlink w/ 2 Good: 26332831 Bad: 41490225[12;12Hlink w/ 3 Good: 25475569 Bad: 42347488[13;31H43946[13;47H79112[14;12Hlink w/ 2 Good: 25983054 Bad: 41840005[15;26H4[15;39H3[16;26H63[16;40H62[18;55H4[18;69H4
5309[43d[11;31H85892[11;46H527559[12;30H527914[12;47H8553[13;12Hno link Good: 25896579 Bad: 42016874[K[14;12Hno link Good: 26035876 Bad: 41877578[K[15;26H7[15;39H6[16;26H96[16;40H95[18;55H8[18;69H8
5310[43d[11;12Hno link Good: 26425767 Bad: 41578080[K[12;12Hno link Good: 25566600 Bad: 42437249[K[13;28H935792[13;45H68058[14;12Hlink w/ 3 Good: 26075184 Bad: 41928667[15;26H9[15;39H8[16;25H929[16;39H928[18;54H12[18;68H12
5311[43d[11;29H44910[11;44H649334[12;29H84137[12;44H510108[13;29H54030[13;44H140216[14;20H2[14;31H93697[14;45H2000551[15;25H91[15;38H90[15;61H7[16;26H62[16;40H61[18;55H6[18;69H6
5312[43d[11;12Hlink w/ 3 Good: 26484104 Bad: 41700534[12;12Hlink w/ 3 Good: 25622440 Bad: 42562199[13;12Hlink w/ 2 Good: 25992617 Bad: 42192024[14;20H3[14;30H132542[14;47H52100[15;26H4[15;39H3[16;26H95[16;40H94[18;54H20[18;68H20
5313[43d[11;12Hno link Good: 26537198 Bad: 41737838[K[12;20H4[12;31H7478[12;46H600257[13;12Hno link Good: 26045328 Bad: 42229710[K[14;12Hno link Good: 26185297 Bad: 42089742[K[15;26H6[15;39H5[16;24H5029[16;38H5028[18;55H4[18;69H4
5314[43d[11;29H6342[11;44H802006[12;12Hno link Good: 25699493 Bad: 42665942[K[13;29H7074[13;45H94689[14;28H210860[14;44H154577[15;26H8[15;39H7[16;26H62[16;40H61[18;55H8[18;69H8
5315[43d[11;29H82452[11;45H73375[12;28H71702[12;44H738805[13;29H88957[13;44H366873[14;12Hlink w/ 2 Good: 26229477 Bad: 42226354[15;24H801[15;37H800[15;61H8[16;26H95[16;40H94[18;54H32[18;68H32
5316[43d[44;1H[?1049l
5317[?1l>Caught SIGINT. Exiting...
5318]0;root@node1-1.sb9.orbit-lab.org: ~root@node1-1:~# ~netfpga/netfpga/projects/selftest/sw/selftest -cn
5319[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[K~netfpga/netfpga/projects/selftest/sw/selftest -cn
5320Found net device: nf2c0
5321CPCI Information
5322----------------
5323Version: 4 (rev 1)
5324
5325Device (Virtex) Information
5326---------------------------
5327Project directory: selftest
5328Project name: Selftest
5329Project description: NetFPGA selftest -- exercises all major subsystems of the board
5330
5331Device ID: 5
5332Version: 1.1.0
5333Built against CPCI version: 4 (rev 1)
5334
5335[?1049h[1;44r[m(B[4l[?7h[H[2J[0;7m(B NetFPGA selftest v1.00 alpha [3;1H[m(BClock test: pass
5336Reg test: pass
5337MDIO test: pass
5338[6GPhy 1: rev 1 up, 1000Base-TX full
5339[6GPhy 2: rev 1 up, 1000Base-TX full
5340[6GPhy 3: rev 1 up, 1000Base-TX full
5341[6GPhy 4: rev 1 up, 1000Base-TX full
5342PHY test: fail
5343 Port 1: no link Good: 3721 Bad: 13609
5344 Port 2: no link Good: 3394 Bad: 13937
5345 Port 3: no link Good: 3594 Bad: 13738
5346 Port 4: no link Good: 3536 Bad: 13798
5347DRAM test: Iteration: 1 Good: 0 Bad: 0 B/W: nan Gbps
5348SRAM test: Iteration: 1 Good: 0 Bad: 0 B/W: nan Gbps
5349SATA Test Disabled
5350DMA test: Iteration(one pkt write, read, compare): 40 Good: 40 Bad: 0
5351[44d[0;7m(BQ[m(B Quit
5352[A[11;27H5088 Bad: 72862[12;12Hlink w/ 4 Good: 33537 Bad: 74414[13;27H4127 Bad: 73825[14;27H4493 Bad: 73460[15;23H3[15;33H2[15;51H10.74 Gbps[16;23H34 Good: 33 Bad: 0 B/W: 4.43 Gbps[18;52H8[18;63H8
5353[43d[11;26H88099[11;39H110223[12;28H85838[12;41H112485[13;26H8679[13;39H111527[14;12Hlink w/ 1 Good: 87247 Bad: 111079[15;23H6[15;33H5[15;52H3.42[16;23H67[16;34H66[18;52H120 Good: 120 Bad: 0
5354[43d[11;12Hlink w/ 2 Good: 132095 Bad: 156615[12;28H128944 Bad: 159767[13;12Hlink w/ 4 Good: 130310 Bad: 158402[14;20H3[28G130851 Bad: 157862[15;23H8[15;33H7[15;51H9.40 Gbps[K[16;23H100 Good: 99 Bad: 0 B/W: 3.32 Gbps[18;53H6[18;65H6
5355[43d[11;20H4[11;29H85202[11;43H9390[12;12Hno link Good: 181281 Bad: 197827[K[13;20H2[13;29H82973[13;43H96136[14;29H83692[14;43H95418[15;23H10 Good: 9 Bad: 0 B/W: 9.66 Gbps[16;24H34[16;35H133 Bad: 0 B/W: 3.57 Gbps[18;52H20[18;64H20
5356[43d[11;12Hno link Good: 212477 Bad: 257027[K[12;12Hlink w/ 3 Good: 207143 Bad: 262362[13;20H4[28G20944[13;42H260063[14;20H1[28G210269[14;42H25923[15;24H3[15;34H12 Bad: 0 B/W: 10.74 Gbps[16;24H67[16;36H66[16;57H71[18;53H4[18;65H4
5357[43d[11;27H3158[11;40H328313[12;29H24677[12;42H335224[13;12Hno link Good: 227758 Bad: 332144[K[14;12Hno link Good: 228736 Bad: 331168[K[15;24H5[15;35H4[16;23H200[16;36H99[16;57H82[18;53H8[18;65H8
5358[43d[11;27H83352[11;41H66944[12;12Hno link Good: 275753 Bad: 374544[K[13;27H79190[13;41H71109[14;12Hlink w/ 2 Good: 280313 Bad: 369987[15;24H7[15;35H6[16;24H33[16;35H232[16;58H9[18;52H32[18;64H32
5359[43d[11;26H33538[11;40H405310[12;26H3269[12;40H413740[13;26H330737[13;40H409958[14;20H1[28G331938[14;42H408758[15;23H20[15;35H9[15;54H1.33[16;24H66[16;36H65[16;57H95[18;53H6[18;65H6
5360[43d[11;27H54503[11;41H76586[12;12Hlink w/ 1 Good: 344666 Bad: 486424[13;12Hlink w/ 1 Good: 348904 Bad: 482187[14;20H2[14;29H50374[14;43H8071[15;24H2[15;34H21[15;56H27[16;24H99[16;36H98[16;55H4.00[18;52H40[18;64H40
5361[43d[11;12Hlink w/ 3 Good: 386112 Bad: 535371[12;29H75090[12;42H54639[13;12Hno link Good: 379808 Bad: 541677[K[14;12Hno link Good: 381557 Bad: 539929[K[15;24H5[15;35H4[15;56H71[16;23H332[16;35H331[16;58H4[18;53H4[18;65H4
5362[43d[11;12Hno link Good: 439241 Bad: 572640[K[12;12Hno link Good: 427410 Bad: 584472[K[13;12Hlink w/ 4 Good: 432449 Bad: 579434[14;12Hlink w/ 3 Good: 434275 Bad: 577609[15;24H7[15;35H6[15;54H0.74[16;24H66[16;36H65[16;55H3.77[18;53H8[18;65H8
5363[43d[11;12Hlink w/ 4 Good: 473152 Bad: 629121[12;27H59902[12;40H6423[13;12Hno link Good: 465465 Bad: 636810[K[14;29H67577[14;42H63469[15;24H9[15;35H8[16;24H99[16;36H98[16;57H82[18;52H52[18;64H52
5364[43d[11;12Hno link Good: 492259 Bad: 700413[K[12;27H77528[12;40H715145[13;27H8375[13;40H708919[14;12Hno link Good: 486064 Bad: 706611[K[15;23H32[15;34H31[15;54H1.10[16;23H432[16;35H431[16;58H6[18;53H6[18;65H6
5365[43d[11;26H537538[11;41H45530[12;12Hlink w/ 3 Good: 521795 Bad: 761275[13;12Hlink w/ 2 Good: 528541 Bad: 754530[14;12Hlink w/ 1 Good: 531077 Bad: 751995[15;24H4[15;35H3[15;56H07[16;24H65[16;36H64[16;58H9[18;52H60[18;64H60
5366[43d[11;12Hlink w/ 3 Good: 590655 Bad: 782808[12;12Hno link Good: 574104 Bad: 799360[K[13;12Hno link Good: 581271 Bad: 792194[K[14;20H2[14;29H83851[14;43H89616[15;24H6[15;35H5[15;57H5[16;24H98[16;36H97[16;57H92[18;53H4[18;65H4
5367[43d[11;20H2[28G610716[11;42H853144[12;27H92692[12;40H871169[13;26H600479[13;40H86338[14;12Hno link Good: 603316 Bad: 860548[K[15;24H9[15;35H8[15;56H33[16;23H531[16;35H530[16;58H5[18;53H8[18;65H8
5368[43d[11;12Hno link Good: 631255 Bad: 923003[K[12;12Hlink w/ 1 Good: 611772 Bad: 942487[13;27H20145[13;40H934115[14;27H23299[14;40H930962[15;23H41[15;34H40[15;57H0[16;24H64[16;36H63[16;58H8[18;52H72[18;64H72
5369[43d[11;12Hlink w/ 4 Good: 684350 Bad: 960301[12;20H3[12;29H64106[12;43H80546[13;12Hlink w/ 1 Good: 672799 Bad: 971854[14;12Hlink w/ 3 Good: 676057 Bad: 968598[15;24H4[15;35H3[15;56H54[16;24H98[16;36H97[16;55H4.01[18;53H6[18;65H6
5370[43d[11;12Hno link Good: 724720 Bad: 1010327[K[12;20H4[28G703360[12;42H1031688[13;12Hno link Good: 712552 Bad: 1022497[K[14;12Hno link Good: 715925 Bad: 1019125[K[15;24H6[15;35H5[15;57H0[16;23H631[16;35H630[16;58H3[18;52H80[18;64H80
5371[43d[11;27H43887[11;42H81560[12;12Hno link Good: 721026 Bad: 1104422[K[13;27H30789[13;42H94661[14;27H34564[14;42H90887[15;24H8[15;35H7[15;54H0.97[16;24H64[16;36H63[16;55H3.87[18;53H4[18;65H4
5372[43d[11;12Hlink w/ 3 Good: 782630 Bad: 1133212[12;27H58703[12;42H57140[13;12Hlink w/ 2 Good: 768902 Bad: 1146943[14;12Hlink w/ 2 Good: 772929 Bad: 1142917[15;23H51[15;34H50[15;54H1.18[16;24H97[16;36H96[16;58H9[18;53H8[18;65H8
5373[43d[11;20H2[28G835687[11;44H70551[12;12Hlink w/ 1 Good: 811056 Bad: 1195183[13;20H1[28G821639[13;44H84601[14;20H3[28G825666[14;44H80576[15;24H3[15;35H2[15;57H7[16;23H730[16;35H729[16;57H91[18;52H92[18;64H92
5374[43d[11;12Hno link Good: 862236 Bad: 1234401[K[12;12Hno link Good: 836369 Bad: 1260269[K[13;12Hno link Good: 847655 Bad: 1248984[K[14;12Hno link Good: 851801 Bad: 1244839[K[15;24H5[15;35H4[15;57H5[16;24H63[16;36H62[16;58H3[18;53H6[18;65H6
5375[43d[11;27H81320[11;41H305707[12;27H54035[12;41H332994[13;27H65830[13;41H321200[14;12Hlink w/ 2 Good: 870334 Bad: 1316697[15;24H8[15;35H7[15;56H33[16;24H96[16;36H95[16;58H5[18;52H1000 Good: 1000 Bad: 0
5376[43d[11;12Hlink w/ 2 Good: 933727 Bad: 1343698[12;26H905678[12;42H71749[13;12Hlink w/ 4 Good: 917859 Bad: 1359569[14;20H1[28G92251[14;44H54915[15;23H60[15;35H9[15;57H1[16;23H830[16;35H829[16;58H7
5377
5378[54G4[18;67H4
5379[43d[11;12Hno link Good: 985970 Bad: 1381852[K[12;27H57002[12;41H410821[13;12Hno link Good: 969580 Bad: 1398244[K[14;12Hno link Good: 974347 Bad: 1393478[K[15;24H3[15;34H62[15;56H48[16;24H63[16;36H62[16;58H9
5380
5381[54G8[18;67H8
5382[43d[11;26H1005055 Bad: 1453163[12;27H74539[12;42H83680[13;27H8784[13;41H470380[14;27H92894[14;41H465327[15;24H5[15;35H4[15;57H5[16;24H96[16;36H95[16;55H4.00[18;53H12[18;66H12
5383[43d[11;28H37219[11;42H51139[12;26H1005494 Bad: 1543119[13;26H1019346 Bad: 1529269[14;26H1024696 Bad: 1523920[15;24H7[15;35H6[15;57H3[16;23H929[16;35H928[16;58H2
5384
5385[54G6[18;67H6
5386[43d[11;12Hlink w/ 2 Good: 1090338 Bad: 1548672[12;12Hlink w/ 3 Good: 1057858 Bad: 1581153[13;28H71972[13;43H67040[14;28H7751[14;43H61497[15;23H70[15;35H9[15;56H2[16;24H62[16;36H61[16;55H3.91[18;53H20[18;66H20
5387[43d[11;29H134346[11;45H95061[12;12Hno link Good: 1100969 Bad: 1628439[K[13;12Hlink w/ 2 Good: 1115498 Bad: 1613911[14;12Hlink w/ 3 Good: 1121130 Bad: 1608280[15;24H2[15;34H71[15;57H1[16;24H95[16;36H94[16;58H2
5388
5389[54G4[18;67H4
5390[43d[11;12Hno link Good: 1187460 Bad: 1632344[K[12;12Hlink w/ 3 Good: 1153279 Bad: 1666526[13;30H68206[13;45H51600[14;20H1[14;30H73865[14;45H45942[15;24H4[15;35H3[15;57H0[16;23H1028 Good: 1027 Bad: 0 B/W: 3.94 Gbps[18;54H8[18;67H8
5391[43d[11;12Hlink w/ 4 Good: 1213908 Bad: 1696292[12;12Hno link Good: 1178288 Bad: 1731913[K[13;12Hno link Good: 1193732 Bad: 1716470[K[14;12Hno link Good: 1199625 Bad: 1710578[K[15;24H7[15;35H6[15;56H33[16;25H62[16;38H61[16;60H6[18;53H32[18;66H32
5392[43d[11;12Hno link Good: 1233021 Bad: 1767572[K[12;12Hlink w/ 1 Good: 1195860 Bad: 1804734[13;27H21185[13;43H88743[14;27H2181[14;43H82471[15;24H9[15;35H8[15;57H2[16;25H95[16;38H94[16;60H7[18;54H6[18;67H6
5393[43d[11;12Hlink w/ 2 Good: 1285709 Bad: 1805283[12;20H3[12;29H247852[12;45H43141[13;12Hlink w/ 4 Good: 1264213 Bad: 1826781[14;28H70673[14;42H820322[15;23H82[15;34H81[15;56H44[16;24H128[16;37H127[16;60H8[18;53H40[18;66H40
5394[43d[11;12Hno link Good: 1336684 Bad: 1844704[K[12;12Hno link Good: 1298085 Bad: 1883304[K[13;29H314784[13;45H66607[14;27H321286[14;43H60106[15;24H4[15;35H3[15;57H3[16;25H61[16;38H60[16;60H9[18;54H4[18;67H4
5395[43d[11;28H55870[11;42H91591[12;12Hlink w/ 4 Good: 1315707 Bad: 1956078[13;12Hno link Good: 1333066 Bad: 1938720[K[14;12Hlink w/ 1 Good: 1339791 Bad: 1931996[15;24H6[15;35H5[15;57H1[16;25H94[16;38H93[16;57H4.00[18;54H8[18;67H8
5396[43d[11;28H88261[11;43H73912[12;12Hno link Good: 1346969 Bad: 2015205[K[13;12Hlink w/ 1 Good: 1364811 Bad: 1997365[14;20H2[14;30H7178[14;45H903[15;24H9[15;35H8[15;56H52[16;24H227[16;37H226[16;60H1[18;53H52[18;66H52
5397[43d[11;12Hlink w/ 3 Good: 1441398 Bad: 2011178[12;12Hlink w/ 3 Good: 1399322 Bad: 2053255[13;20H2[13;29H41750[13;43H2035077[14;12Hno link Good: 1424551 Bad: 2028028[K[15;23H91[15;34H90[15;56H24[16;25H60[16;38H59[16;57H3.93[18;54H6[18;67H6
5398[43d[11;30H74314[11;45H6865[12;20H4[12;29H43105[12;44H111921[13;20H4[13;30H49677[13;45H9329[14;28H5689[14;43H86084[15;24H3[15;35H2[15;57H3[16;25H94[16;38H93[16;60H4[18;53H60[18;66H60
5399[43d[11;12Hno link Good: 1493427 Bad: 2139938[K[12;12Hno link Good: 1448807 Bad: 2184559[K[13;12Hno link Good: 1467935 Bad: 2165432[K[14;28H75354[14;42H15801[15;24H6[15;35H5[15;56H3[16;24H327[16;37H326[16;60H5[18;54H4[18;67H4
5400[43d[11;27H539542[11;43H84224[12;12Hlink w/ 1 Good: 1494211 Bad: 2229556[13;27H513642[13;42H210126[14;27H521171[14;42H202598[15;24H8[15;35H7[15;57H2[16;25H60[16;38H59[16;60H7[18;54H8[18;67H8
5401[43d[11;12Hlink w/ 4 Good: 1592614 Bad: 2221542[12;20H4[12;29H546562[12;45H67595[13;28H66337[13;43H47821[14;28H73944[14;43H40215[15;23H101 Good: 100 Bad: 0 B/W: 11.42 Gbps[16;25H93[16;38H92[16;60H8[18;53H72[18;66H72
5402[43d[11;12Hno link Good: 1611722 Bad: 2292834[K[12;20H3[12;30H64191[12;44H340366[13;28H84636[13;42H319923[14;28H92512[14;42H312048[15;25H3[15;37H2[15;59H1[16;24H426[16;37H425[18;54H6[18;67H6
5403[43d[11;28H33113[11;42H361839[12;30H84174[12;44H410780[13;27H605230[13;43H89725[14;12Hlink w/ 3 Good: 1613225 Bad: 2381731[15;25H5[15;37H4[15;58H39[16;25H59[16;38H58[16;60H9[18;53H80[18;66H80
5404[43d[11;28H86250[11;43H99098[12;12Hno link Good: 1636538 Bad: 2448811[K[13;12Hlink w/ 2 Good: 1657912 Bad: 2427439[14;20H2[14;30H66013[14;44H419339[15;25H8[15;37H7[15;58H4[16;25H92[16;38H91[16;57H4.00[18;54H4[18;67H4
5405[43d[11;27H725824[11;42H449921[12;28H7501[12;42H500728[13;30H96839[13;45H7890[14;12Hno link Good: 1704909 Bad: 2470840[K[15;24H10[15;37H9[15;59H7[16;24H526[16;37H525[16;60H1[18;54H8[18;67H8
5406[43d[11;28H44861[11;42H521280[12;12Hlink w/ 3 Good: 1692597 Bad: 2573545[13;12Hno link Good: 1715128 Bad: 2551015[K[14;12Hlink w/ 3 Good: 1723365 Bad: 2542779[15;25H2[15;36H11[15;58H24[16;25H59[16;38H58[16;57H3.95[18;53H92[18;66H92
5407[43d[11;12Hlink w/ 2 Good: 1784488 Bad: 2572047[12;20H4[12;29H731186[12;44H625350[13;12Hlink w/ 2 Good: 1754193 Bad: 2602345[14;30H62582[14;45H93957[15;25H5[15;37H4[15;58H33[16;25H92[16;38H91[18;54H6[18;67H6
5408[43d[11;12Hno link Good: 1837528 Bad: 2609405[K[12;12Hno link Good: 1783554 Bad: 2663380[K[13;12Hno link Good: 1806876 Bad: 2640059[K[14;20H2[14;29H815359[14;44H63157[15;25H7[15;37H6[15;59H2[16;24H625[16;37H624[16;60H6[18;52H200[18;65H200
5409[43d[11;28H63407[11;43H73923[12;27H807927[12;42H729404[13;28H31873[13;42H705460[14;12Hno link Good: 1840566 Bad: 2696768[K[15;24H20[15;37H9[15;58H41[16;25H58[16;38H57[16;60H7[18;54H4[18;67H4
5410[43d[11;12Hlink w/ 3 Good: 1882828 Bad: 2744897[12;12Hlink w/ 3 Good: 1825790 Bad: 2801936[13;12Hlink w/ 1 Good: 1850424 Bad: 2777303[14;12Hlink w/ 3 Good: 1859352 Bad: 2768377[15;25H2[15;36H21[15;59H0[16;25H91[16;38H90[16;60H8[18;54H8[18;67H8
5411[43d[11;12Hno link Good: 1935844 Bad: 2782276[K[12;12Hno link Good: 1878157 Bad: 2839964[K[13;12Hno link Good: 1903065 Bad: 2815057[K[14;12Hno link Good: 1912143 Bad: 2805980[K[15;25H4[15;37H3[15;58H39[16;24H724[16;37H723[16;60H9[18;53H12[18;66H12
5412[43d[11;12Hlink w/ 4 Good: 1986474 Bad: 2822044[12;27H927899[12;43H80620[13;28H53111[13;43H55410[14;12Hlink w/ 2 Good: 1962357 Bad: 2846165[15;25H7[15;37H6[15;58H47[16;25H58[16;38H57[16;57H4.00[18;54H6[18;67H6
5413[43d[11;12Hno link Good: 2005754 Bad: 2893159[K[12;28H45530[12;42H953384[13;28H71339[13;42H927576[14;12Hno link Good: 1980933 Bad: 2917984[K[15;25H9[15;37H8[15;59H5[16;25H91[16;38H90[18;53H20[18;66H20
5414[43d[11;28H38786[11;42H950524[12;12Hlink w/ 4 Good: 1977443 Bad: 3011868[13;12Hlink w/ 2 Good: 2003775 Bad: 2985537[14;12Hlink w/ 1 Good: 2013598 Bad: 2975715[15;24H32[15;36H31[15;58H53[16;24H824[16;37H823[16;60H1[18;54H4[18;67H4
5415[43d[11;12Hlink w/ 2 Good: 2091886 Bad: 2987821[12;12Hno link Good: 2029745 Bad: 3049963[K[13;12Hno link Good: 2056338 Bad: 3023371[K[14;30H66442[14;43H3013269[15;25H4[15;37H3[15;58H3[16;25H57[16;38H56[16;57H3.95[18;54H8[18;67H8
5416[43d[44;1H[?1049l
5417[?1l>Caught SIGINT. Exiting...
5418]0;root@node1-1.sb9.orbit-lab.org: ~root@node1-1:~#
5419]0;root@node1-1.sb9.orbit-lab.org: ~root@node1-1:~#
5420]0;root@node1-1.sb9.orbit-lab.org: ~root@node1-1:~# exit
5421logout
5422]0;netfpga@node1-1: ~/netfpga/projects/selftest/swnetfpga@node1-1:~/netfpga/projects/selftest/sw$ ls
5423[0m[01;32mbad_pkt_dump[0m or_ip.c or_utils.o selftest_clk.o selftest_dram.h selftest_mdio.o selftest_reg.c selftest_serial.o
5424bad_pkt_dump.c or_ip.h [01;32mselftest[0m selftest_dma.c selftest_dram.o selftest.o selftest_reg.h selftest_sram.c
5425bad_pkt_dump.o or_ip.o selftest.c selftest_dma.h selftest.h selftest_phy.c selftest_reg.o selftest_sram.h
5426Makefile or_utils.c selftest_clk.c selftest_dma.o selftest_mdio.c selftest_phy.h selftest_serial.c selftest_sram.o
5427or_data_types.h or_utils.h selftest_clk.h selftest_dram.c selftest_mdio.h selftest_phy.o selftest_serial.h
5428[m]0;netfpga@node1-1: ~/netfpga/projects/selftest/swnetfpga@node1-1:~/netfpga/projects/selftest/sw$ lssudo su -
5429]0;root@node1-1.sb9.orbit-lab.org: ~root@node1-1:~# exit~netfpga/netfpga/projects/selftest/sw/selftest -cn
5430Found net device: nf2c0
5431CPCI Information
5432----------------
5433Version: 4 (rev 1)
5434
5435Device (Virtex) Information
5436---------------------------
5437Project directory: selftest
5438Project name: Selftest
5439Project description: NetFPGA selftest -- exercises all major subsystems of the board
5440
5441Device ID: 5
5442Version: 1.1.0
5443Built against CPCI version: 4 (rev 1)
5444
5445[?1049h[1;44r[m(B[4l[?7h[H[2J[0;7m(B NetFPGA selftest v1.00 alpha [3;1H[m(BClock test: pass
5446Reg test: pass
5447MDIO test: pass
5448[6GPhy 1: rev 1 up, 1000Base-TX full
5449[6GPhy 2: rev 1 up, 1000Base-TX full
5450[6GPhy 3: rev 1 up, 1000Base-TX full
5451[6GPhy 4: rev 1 up, 1000Base-TX full
5452PHY test: fail
5453 Port 1: link w/ 3 Good: 10183 Bad: 7138
5454 Port 2: no link Good: 10063 Bad: 7259
5455 Port 3: link w/ 2 Good: 10089 Bad: 7234
5456 Port 4: link w/ 3 Good: 10135 Bad: 7189
5457DRAM test: Iteration: 1 Good: 0 Bad: 0 B/W: nan Gbps
5458SRAM test: Iteration: 1 Good: 0 Bad: 0 B/W: nan Gbps
5459SATA Test Disabled
5460DMA test: Iteration(one pkt write, read, compare): 40 Good: 40 Bad: 0
5461[44d[0;7m(BQ[m(B Quit
5462[A[11;12Hno link Good: 49136 Bad: 58784[K[12;26H47801[12;39H60120[13;12Hno link Good: 48346 Bad: 59577[K[14;12Hno link Good: 48614 Bad: 59309[K[15;23H3[15;33H2[15;51H5.37 Gbps[16;23H34 Good: 33 Bad: 0 B/W: 2.21 Gbps[18;52H8[18;63H8
5463[43d[11;26H68287[11;39H130007[12;26H65484[12;39H132811[13;26H66538[13;39H131758[14;26H67169[14;39H131128[15;23H6[15;33H5[15;51H8.95[16;23H67[16;34H66[16;55H95
5464
5465[52G120 Good: 120 Bad: 0
5466[43d[11;26H113078 Bad: 175605[12;12Hlink w/ 4 Good: 109381 Bad: 179303[13;26H110744 Bad: 177941[14;26H111632 Bad: 177054[15;23H8[15;33H7[15;51H9.40[16;23H100 Good: 99 Bad: 0 B/W: 3.32 Gbps[18;53H6[18;65H6
5467[43d[11;12Hlink w/ 3 Good: 166208 Bad: 212870[12;29H61678[12;42H217401[13;27H63432[13;40H215648[14;27H64408[14;40H214673[15;23H10 Good: 9 Bad: 0 B/W: 9.66 Gbps[16;24H34[16;35H133 Bad: 0 B/W: 3.57 Gbps[18;52H20[18;64H20
5468[43d[11;12Hno link Good: 186837 Bad: 282636[K[12;12Hno link Good: 180747 Bad: 288727[K[13;27H83193[13;41H86282[14;27H84353[14;41H85124[15;24H3[15;34H12 Bad: 0 B/W: 10.74 Gbps[16;24H67[16;36H66[16;57H71[18;53H4[18;65H4
5469[43d[11;26H21139[11;40H348477[12;12Hlink w/ 1 Good: 203948 Bad: 355928[13;26H206948[13;40H352929[14;26H208385[14;40H351493[15;24H5[15;35H4[16;23H200[16;36H99[16;57H82[18;53H8[18;65H8
5470[43d[11;12Hlink w/ 3 Good: 264494 Bad: 385775[12;12Hno link Good: 256302 Bad: 393968[K[13;27H59611[13;41H90660[14;12Hlink w/ 2 Good: 261215 Bad: 389057[15;24H7[15;35H6[16;24H33[16;35H232[16;58H9[18;52H32[18;64H32
5471[43d[11;28H305339[11;42H43531[12;27H96036[12;40H444620[13;12Hlink w/ 1 Good: 299907 Bad: 440750[14;20H1[28G301541[14;42H43911[15;23H20[15;35H9[15;54H1.33[16;24H66[16;36H65[16;57H95[18;53H6[18;65H6
5472[43d[11;20H2[11;29H24537[11;42H506521[12;12Hlink w/ 4 Good: 313645 Bad: 517414[13;12Hno link Good: 318060 Bad: 513000[K[14;12Hno link Good: 320030 Bad: 511031[K[15;24H2[15;34H21[15;56H27[16;24H99[16;36H98[16;55H4.00[18;52H40[18;64H40
5473[43d[11;20H4[11;29H58419[11;43H63038[12;20H1[12;29H46383[12;43H75076[13;27H51246[13;41H70214[14;12Hlink w/ 2 Good: 353473 Bad: 567988[15;24H5[15;35H4[15;54H0.74[16;23H332[16;35H331[16;55H3.7
5474
5475[53G4[18;65H4
5476[43d[11;20H3[28G411538[11;42H600314[12;12Hno link Good: 398702 Bad: 613151[K[13;26H4039[13;40H607909[14;20H3[28G406249[14;42H605607[15;24H7[15;35H6[16;24H66[16;36H65[16;58H7[18;53H8[18;65H8
5477[43d[11;20H2[11;29H38622[11;43H63625[12;26H424469[12;41H77779[13;12Hlink w/ 2 Good: 430295 Bad: 671955[14;12Hno link Good: 432760 Bad: 669491[K[15;24H9[15;35H8[16;24H99[16;36H98[16;57H82[18;52H52[18;64H52
5478[43d[11;12Hno link Good: 457748 Bad: 734894[K[12;27H41978[12;40H750666[13;12Hno link Good: 448500 Bad: 744145[K[14;27H51272[14;40H741374[15;23H32[15;34H31[15;54H1.10[16;23H432[16;35H431[16;58H6[18;53H6[18;65H6
5479[43d[11;12Hlink w/ 4 Good: 509687 Bad: 773352[12;12Hlink w/ 1 Good: 493117 Bad: 789923[13;26H500014[13;41H83027[14;26H5029[14;41H80071[15;24H4[15;35H3[15;56H07[16;24H65[16;36H64[16;58H9[18;52H60[18;64H60
5480[43d[11;12Hno link Good: 557055 Bad: 816380[K[12;12Hno link Good: 539699 Bad: 833737[K[13;12Hlink w/ 1 Good: 546913 Bad: 826524[14;27H49924[14;40H823514[15;24H6[15;35H5[15;57H5[16;24H98[16;36H97[16;57H92[18;53H4[18;65H4
5481[43d[11;27H76222[11;41H87608[12;12Hlink w/ 3 Good: 557364 Bad: 906467[13;12Hno link Good: 565119 Bad: 898714[K[14;27H68341[14;41H95493[15;24H9[15;35H8[15;56H33[16;23H531[16;35H530[16;58H5[18;53H8[18;65H8
5482[43d[11;12Hlink w/ 4 Good: 607985 Bad: 946242[12;12Hno link Good: 587869 Bad: 966360[K[13;27H96178[13;40H958052[14;27H99575[14;40H954656[15;23H41[15;34H40[15;57H0[16;24H64[16;36H63[16;58H8[18;52H72[18;64H72
5483[43d[11;20H3[11;29H61134[11;43H83488[12;12Hlink w/ 1 Good: 640146 Bad: 1004478[13;26H64883[13;41H95787[14;26H652397[14;41H92229[15;24H4[15;35H3[15;56H54[16;24H98[16;36H97[16;55H4.01[18;53H6[18;65H6
5484[43d[11;12Hno link Good: 699249 Bad: 1035771[K[12;12Hno link Good: 677260 Bad: 1057761[K[13;27H86404[13;40H1048618[14;27H90139[14;40H1044884[15;24H6[15;35H5[15;54H0.98[16;23H631[16;35H630[16;55H3.84[18;52H80[18;64H80
5485[43d[11;26H718471[11;41H106944[12;27H94883[12;41H130533[13;12Hlink w/ 2 Good: 704670 Bad: 1120748[14;12Hlink w/ 1 Good: 708549 Bad: 1116870[15;24H8[15;35H7[15;57H7[16;24H64[16;36H63[16;58H7[18;53H4[18;65H4
5486[43d[11;12Hlink w/ 2 Good: 763882 Bad: 1151930[12;26H739385[12;42H76428[13;12Hno link Good: 749620 Bad: 1166194[K[14;20H2[14;29H53562[14;44H62253[15;23H51[15;34H50[15;54H1.18[16;24H97[16;36H96[16;58H9[18;53H8[18;65H8
5487[43d[11;12Hno link Good: 808710 Bad: 1197498[K[12;27H83268[12;41H222941[13;27H93992[13;41H212219[14;12Hno link Good: 797974 Bad: 1208238[K[15;24H3[15;35H2[15;57H7[16;23H730[16;35H729[16;57H91[18;52H92[18;64H92
5488[43d[11;12Hlink w/ 4 Good: 860858 Bad: 1235747[12;26H834784[12;42H61822[13;12Hlink w/ 1 Good: 845828 Bad: 1250780[14;12Hlink w/ 2 Good: 849930 Bad: 1246679[15;24H5[15;35H4[15;57H5[16;24H63[16;36H62[16;58H3[18;53H6[18;65H6
5489[43d[11;12Hno link Good: 907955 Bad: 1279047[K[12;27H81050[12;41H305953[13;12Hno link Good: 892412 Bad: 1294592[K[14;12Hno link Good: 896645 Bad: 1290360[K[15;24H8[15;35H7[15;56H33[16;24H96[16;36H95[16;58H5[18;52H1000 Good: 1000 Bad: 0
5490[43d[11;12Hlink w/ 4 Good: 927149 Bad: 1350247[12;27H98692[12;42H78705[13;26H910719[13;41H366680[14;26H915188[14;41H362212[15;23H60[15;35H9[15;57H1[16;23H830[16;35H829[16;58H7
5491
5492[54G4[18;67H4
5493[43d[11;20H2[11;29H5910[11;43H408685[12;12Hlink w/ 4 Good: 929493 Bad: 1438302[13;12Hlink w/ 4 Good: 942010 Bad: 1425786[14;12Hlink w/ 3 Good: 946746 Bad: 1421051[15;24H3[15;34H62[15;56H48[16;24H63[16;36H62[16;58H9
5494
5495[54G8[18;67H8
5496[43d[11;12Hno link Good: 1012165 Bad: 1446021[K[12;12Hno link Good: 981837 Bad: 1476350[K[13;12Hno link Good: 994651 Bad: 1463538[K[14;12Hno link Good: 999581 Bad: 1458609[K[15;24H5[15;35H4[15;57H5[16;24H96[16;36H95[16;55H4.00[18;53H12[18;66H12
5497[43d[11;12Hlink w/ 4 Good: 1051006 Bad: 1497580[12;26H1019501 Bad: 1529086[13;26H1032770 Bad: 1515818[14;26H1037938 Bad: 1510651[15;24H7[15;35H6[15;56H07[16;23H929[16;35H928[16;55H3.89
5498
5499[54G6[18;67H6
5500[43d[11;12Hno link Good: 1070090 Bad: 1568891[K[12;28H37027[12;42H601955[13;28H51049[13;43H87935[14;28H56416[14;43H82569[15;23H70[15;35H9[15;56H23[16;24H62[16;36H61[16;57H91[18;53H20[18;66H20
5501[43d[11;27H115704[11;42H613674[12;12Hlink w/ 3 Good: 1081838 Bad: 1647541[13;28H96242[13;42H633138[14;12Hlink w/ 2 Good: 1101700 Bad: 1627681[15;24H2[15;34H71[15;57H1[16;24H95[16;36H94[16;58H2
5502
5503[54G4[18;67H4
5504[43d[11;12Hlink w/ 2 Good: 1168753 Bad: 1651021[12;20H1[12;29H134241[12;45H85534[13;12Hlink w/ 2 Good: 1148871 Bad: 1670905[14;12Hno link Good: 1154482 Bad: 1665295[K[15;24H4[15;35H3[15;57H0[16;23H1028 Good: 1027 Bad: 0 B/W: 3.94 Gbps[18;54H8[18;67H8
5505[43d[11;12Hno link Good: 1188422 Bad: 1721750[K[12;12Hno link Good: 1152407 Bad: 1757766[K[13;12Hno link Good: 1167787 Bad: 1742388[K[14;28H73536[14;42H736639[15;24H7[15;35H6[15;56H33[16;25H62[16;38H61[16;60H6[18;53H32[18;66H32
5506[43d[11;12Hlink w/ 3 Good: 1213734 Bad: 1786833[12;12Hlink w/ 3 Good: 1176612 Bad: 1823956[13;28H92501[13;42H80806[14;28H98388[14;42H802183[15;24H9[15;35H8[15;57H2[16;25H95[16;38H94[16;60H7[18;54H6[18;67H6
5507[43d[11;20H4[11;30H66753[11;44H824209[12;20H1[12;29H229000[12;45H61963[13;12Hlink w/ 1 Good: 1245141 Bad: 1845823[14;27H25114[14;43H39817[15;23H82[15;34H81[15;56H44[16;24H128[16;37H127[16;60H8[18;53H40[18;66H40
5508[43d[11;12Hno link Good: 1306723 Bad: 1874635[K[12;12Hno link Good: 1267889 Bad: 1913470[K[13;12Hno link Good: 1284528 Bad: 1896832[K[14;28H90576[14;43H90785[15;24H4[15;35H3[15;57H3[16;25H61[16;38H60[16;60H9[18;54H4[18;67H4
5509[43d[11;28H25839[11;42H94591[12;28H85542[12;43H86213[13;27H302894[13;42H96886[14;27H309099[14;42H962658[15;24H6[15;35H5[15;57H1[16;25H94[16;38H93[16;57H4.00[18;54H8[18;67H8
5510[43d[11;28H60391[11;41H2001759[12;27H318929[12;41H2043222[13;28H3681[13;41H2025339[14;12Hlink w/ 1 Good: 1343303 Bad: 2018851[15;24H9[15;35H8[15;56H25[16;24H227[16;37H226[16;57H3.92[18;53H52[18;66H52
5511[43d[11;12Hlink w/ 2 Good: 1413476 Bad: 2039072[12;28H7134[12;43H81200[13;12Hlink w/ 1 Good: 1389428 Bad: 2063123[14;20H3[14;30H9608[14;45H56469[15;23H91[15;34H90[15;57H4[16;25H60[16;38H59[16;60H3[18;54H6[18;67H6
5512[43d[11;12Hno link Good: 1439766 Bad: 2103175[K[12;28H961[12;42H146793[13;12Hno link Good: 1414939 Bad: 2128004[K[14;12Hno link Good: 1421698 Bad: 2121246[K[15;24H3[15;35H2[15;57H3[16;25H94[16;38H93[16;60H4[18;53H60[18;66H60
5513[43d[11;28H58902[11;43H74436[12;12Hlink w/ 4 Good: 1413786 Bad: 2219553[13;28H33143[13;42H200197[14;28H40153[14;43H93189[15;24H6[15;35H5[15;56H3[16;24H327[16;37H326[16;60H5[18;54H4[18;67H4
5514[43d[11;27H511765[11;42H211969[12;20H1[12;30H65912[12;45H57824[13;12Hlink w/ 4 Good: 1485546 Bad: 2238191[14;28H92699[14;42H23103[15;24H8[15;35H7[15;57H2[16;25H60[16;38H59[16;60H7[18;54H8[18;67H8
5515[43d[11;12Hlink w/ 2 Good: 1558320 Bad: 2255809[12;12Hno link Good: 1511517 Bad: 2302613[K[13;20H1[13;29H531557[13;45H82575[14;27H53883[14;43H75294[15;23H101 Good: 100 Bad: 0 B/W: 11.42 Gbps[16;25H93[16;38H92[16;60H8[18;53H72[18;66H72
5516[43d[11;12Hno link Good: 1577459 Bad: 2327066[K[12;28H29228[12;43H75298[13;12Hno link Good: 1549861 Bad: 2354666[K[14;28H57388[14;42H347140[15;25H3[15;37H2[15;59H1[16;24H426[16;37H425[18;54H6[18;67H6
5517[43d[11;12Hlink w/ 3 Good: 1610118 Bad: 2384803[12;12Hlink w/ 3 Good: 1560585 Bad: 2434337[13;28H81744[13;42H413179[14;12Hlink w/ 1 Good: 1589558 Bad: 2405367[15;25H5[15;37H4[15;58H39[16;25H59[16;38H58[16;60H9[18;53H80[18;66H80
5518[43d[11;12Hno link Good: 1663153 Bad: 2422166[K[12;12Hno link Good: 1612920 Bad: 2472401[K[13;12Hlink w/ 4 Good: 1634436 Bad: 2450886[14;20H3[14;29H642380[14;45H42943[15;25H8[15;37H7[15;58H4[16;25H92[16;38H91[16;57H4.00[18;54H4[18;67H4
5519[43d[11;27H700271[11;43H75442[12;28H48998[12;42H526717[13;30H70914[13;44H504802[14;12Hno link Good: 1679042 Bad: 2496675[K[15;24H10[15;37H9[15;58H25[16;24H526[16;37H525[16;57H3.94[18;54H8[18;67H8
5520[43d[11;28H1946[11;42H546651[12;28H66601[12;43H99512[13;12Hno link Good: 1689100 Bad: 2577014[K[14;28H97603[14;42H568512[15;25H2[15;36H11[15;59H4[16;25H59[16;38H58[16;60H5[18;53H92[18;66H92
5521[43d[11;28H65758[11;43H90749[12;12Hlink w/ 1 Good: 1711979 Bad: 2644530[13;12Hlink w/ 2 Good: 1734887 Bad: 2621623[14;12Hlink w/ 1 Good: 1743567 Bad: 2612944[15;25H5[15;37H4[15;58H33[16;25H92[16;38H91[18;54H6[18;67H6
5522[43d[11;12Hlink w/ 2 Good: 1809810 Bad: 2637094[12;12Hno link Good: 1755012 Bad: 2691893[K[13;20H4[13;30H78390[13;45H68517[14;30H87101[14;45H59807[15;25H7[15;37H6[15;59H2[16;24H625[16;37H624[16;60H6[18;52H200[18;65H200
5523[43d[11;20H3[11;30H62885[11;45H74416[12;12Hlink w/ 4 Good: 1807356 Bad: 2729946[13;20H1[13;29H831023[13;44H706280[14;12Hno link Good: 1839825 Bad: 2697479[K[15;24H20[15;37H9[15;58H41[16;25H58[16;38H57[16;60H7[18;54H4[18;67H4
5524[43d[11;12Hno link Good: 1909113 Bad: 2718582[K[12;20H3[12;30H52627[12;45H75069[13;12Hno link Good: 1876737 Bad: 2750960[K[14;28H85574[14;42H742125[15;25H2[15;36H21[15;59H0[16;25H91[16;38H90[16;60H8[18;54H8[18;67H8
5525[43d[11;28H28215[11;43H89877[12;12Hno link Good: 1870267 Bad: 2847826[K[13;28H94982[13;42H823113[14;27H904175[14;42H813921[15;25H4[15;37H3[15;58H39[16;24H724[16;37H723[16;60H9[18;53H12[18;66H12
5526[43d[11;12Hlink w/ 3 Good: 1961054 Bad: 2847433[12;27H901909[12;42H906579[13;12Hlink w/ 1 Good: 1927095 Bad: 2881395[14;12Hlink w/ 3 Good: 1936612 Bad: 2871879[15;25H7[15;37H6[15;58H47[16;25H58[16;38H57[16;57H4.00[18;54H6[18;67H6
5527[43d[11;12Hno link Good: 2014216 Bad: 2884669[K[12;12Hlink w/ 4 Good: 1954215 Bad: 2944672[13;20H2[13;30H79784[13;44H919104[14;12Hno link Good: 1989408 Bad: 2909481[K[15;25H9[15;37H8[15;59H5[16;25H91[16;38H90[18;53H20[18;66H20
5528[43d[11;28H5204[11;42H937233[12;12Hno link Good: 1990972 Bad: 2998308[K[13;28H2017121[13;45H72161[14;12Hlink w/ 1 Good: 2026878 Bad: 2962405[15;24H32[15;36H31[15;58H34[16;24H824[16;37H823[16;57H3.95[18;54H4[18;67H4
5529[43d[11;12Hlink w/ 2 Good: 2071111 Bad: 3008564[12;26H2008760[12;41H3070916[13;12Hno link Good: 2035381 Bad: 3044296[K[14;12Hno link Good: 2045301 Bad: 3034377[K[15;25H4[15;37H3[15;59H3[16;25H57[16;38H56[18;54H8[18;67H8
5530[43d[11;12Hno link Good: 2117613 Bad: 3052456[K[12;12Hlink w/ 1 Good: 2054474 Bad: 3115597[13;12Hlink w/ 2 Good: 2081438 Bad: 3088634[14;28H91480[14;43H78593[15;25H6[15;37H5[15;59H2[16;25H90[16;38H89[16;60H6[18;53H32[18;66H32
5531[43d[11;12Hlink w/ 3 Good: 2170370 Bad: 3090099[12;12Hno link Good: 2106449 Bad: 3154021[K[13;20H1[13;29H133792[13;44H126679[14;27H143794[14;42H116679[15;25H9[15;37H8[15;58H40[16;24H923[16;37H922[16;60H7[18;54H6[18;67H6
5532[43d[11;20H4[11;30H89603[11;44H161260[12;28H24033[12;42H226832[13;12Hno link Good: 2152060 Bad: 3198806[K[14;28H62272[14;43H88595[15;24H41[15;36H40[15;58H39[16;25H57[16;38H56[16;60H8[18;53H40[18;66H40
5533[43d[11;12Hno link Good: 2216002 Bad: 3225254[K[12;12Hlink w/ 3 Good: 2148980 Bad: 3292278[13;28H77546[13;42H263713[14;28H88096[14;42H253164[15;25H3[15;37H2[15;59H8[16;25H90[16;38H89[18;54H4[18;67H4
5534[43d[11;12Hlink w/ 4 Good: 2269087 Bad: 3262571[12;12Hno link Good: 2201333 Bad: 3330326[K[13;12Hlink w/ 2 Good: 2230202 Bad: 3301458[14;27H240898[14;43H90763[15;25H6[15;37H5[15;58H45[16;23H2023[16;36H2022[16;60H9[18;54H8[18;67H8
5535[43d[11;29H308204[11;44H313850[12;12Hlink w/ 4 Good: 2239337 Bad: 3382718[13;12Hno link Good: 2268643 Bad: 3353413[K[14;28H79477[14;42H342580[15;25H8[15;37H7[15;59H4[16;25H56[16;38H55[16;57H4.00[18;53H52[18;66H52
5536[43d[11;20H3[11;30H27328[11;45H85121[12;12Hno link Good: 2257015 Bad: 3455435[K[13;28H8696[13;42H425489[14;28H97971[14;42H414482[15;24H51[15;36H50[15;58H50[16;25H89[16;38H88[18;54H6[18;67H6
5537[43d[11;20H2[11;30H62804[11;44H440040[12;28H91279[12;42H511566[13;27H32173[13;43H81113[14;12Hlink w/ 3 Good: 2333012 Bad: 3469836[15;25H3[15;37H2[15;58H33[16;24H122[16;37H121[16;57H3.95[18;53H60[18;66H60
5538[43d[11;20H3[11;29H415916[11;45H77323[12;27H343611[12;43H49629[13;12Hlink w/ 2 Good: 2374359 Bad: 3518883[14;30H85801[14;44H507442[15;25H5[15;37H4[16;25H55[16;38H54[16;60H6[18;54H4[18;67H4
5539[43d[11;12Hno link Good: 2441302 Bad: 3542334[K[12;28H67650[12;42H615987[13;12Hno link Good: 2398961 Bad: 3584677[K[14;20H2[14;29H410583[14;45H73057[15;25H8[15;37H7[15;59H9[16;25H89[16;38H88[16;60H7[18;54H8[18;67H8
5540[43d[11;12Hlink w/ 2 Good: 2460998 Bad: 3613033[12;28H86005[12;43H8802[13;27H417884[13;42H656149[14;20H1[14;30H29737[14;44H64429[15;24H60[15;37H9[15;59H8[16;24H222[16;37H221[18;53H72[18;66H72
5541[43d[11;20H3[11;29H514062[11;45H50370[12;12Hlink w/ 1 Good: 2438364 Bad: 3726070[13;28H70569[13;43H93866[14;12Hno link Good: 2482555 Bad: 3681881[K[15;25H2[15;36H61[15;59H7[16;25H55[16;38H54[16;60H8[18;54H6[18;67H6
5542[43d[11;12Hno link Good: 2559595 Bad: 3695227[K[12;30H83118[12;45H71705[13;27H515676[13;42H739148[14;12Hlink w/ 2 Good: 2527690 Bad: 3727135[15;25H5[15;37H4[15;58H43[16;25H88[16;38H87[16;60H9[18;53H80[18;66H80
5543[43d[11;28H78782[11;42H766438[12;12Hno link Good: 2500737 Bad: 3844484[K[13;12Hlink w/ 2 Good: 2534048 Bad: 3811174[14;12Hno link Good: 2546205 Bad: 3799018[K[15;25H7[15;37H6[16;24H321[16;37H320[18;54H4[18;67H4
5544[43d[11;27H612240[11;42H823379[12;28H32996[12;42H90262[13;20H4[13;30H66875[13;45H68746[14;12Hlink w/ 2 Good: 2579207 Bad: 3856415[15;24H70[15;37H9[15;59H8[16;25H54[16;38H53[16;57H4.00[18;54H8[18;67H8
5545[43d[11;28H6540[11;43H60613[12;12Hlink w/ 3 Good: 2585332 Bad: 3940683[13;12Hno link Good: 2619591 Bad: 3906425[K[14;20H1[14;29H631998[14;45H94019[15;25H2[15;36H71[15;58H33[16;25H87[16;38H86[16;57H3.95[18;53H92[18;66H92
5546[43d[11;27H701747[11;42H914661[12;12Hno link Good: 2620444 Bad: 3995965[K[13;28H55303[13;43H61108[14;20H3[14;30H67820[14;44H948592[15;25H4[15;37H3[16;24H421[16;37H420[16;60H6[18;54H6[18;67H6
5547[43d[11;12Hlink w/ 2 Good: 2720879 Bad: 3985928[12;28H38108[12;41H4068700[13;12Hlink w/ 2 Good: 2673724 Bad: 4033085[14;20H2[14;30H86175[14;43H4020635[15;25H7[15;37H6[15;59H8[16;25H54[16;38H53[16;60H7[18;52H300[18;65H300
5548[43d[11;12Hno link Good: 2768061 Bad: 4029142[K[12;12Hlink w/ 1 Good: 2684442 Bad: 4112762[13;12Hno link Good: 2720395 Bad: 4076811[K[14;12Hno link Good: 2733087 Bad: 4064120[K[15;25H9[15;37H8[16;25H87[16;38H86[18;54H4[18;67H4
5549[43d[11;27H812106[11;43H7549[12;12Hno link Good: 2727485 Bad: 4160115[K[13;12Hlink w/ 1 Good: 2763858 Bad: 4123743[14;12Hlink w/ 2 Good: 2776611 Bad: 4110991[15;24H81[15;36H80[15;59H7[16;24H520[16;37H519[16;60H8[18;54H8[18;67H8
5550[43d[11;28H65152[11;42H112845[12;12Hlink w/ 1 Good: 2779831 Bad: 4198167[13;20H2[13;29H816549[13;45H61450[14;20H3[14;29H829320[14;45H48680[15;25H4[15;37H3[15;58H42[16;25H53[16;38H52[18;53H12[18;66H12
5551[43d[11;27H910475[11;43H57912[12;12Hno link Good: 2824193 Bad: 4244196[K[13;12Hno link Good: 2861379 Bad: 4207011[K[14;12Hno link Good: 2874138 Bad: 4194253[K[15;25H6[15;37H5[16;25H86[16;38H85[16;60H9[18;54H6[18;67H6
5552[43d[11;28H29671[11;42H229114[12;28H41867[12;42H316919[13;28H7961[13;43H79168[14;28H9269[14;42H266090[15;25H9[15;37H8[15;59H7[16;24H619[16;37H618[18;53H20[18;66H20
5553[43d[11;12Hlink w/ 2 Good: 2963275 Bad: 4285910[12;12Hlink w/ 4 Good: 2874578 Bad: 4374608[13;27H912641[13;42H336546[14;27H926034[14;42H323154[15;24H91[15;36H90[15;59H6[16;25H53[16;38H52[16;57H4.00[18;54H4[18;67H4
5554[43d[11;12Hno link Good: 3016412 Bad: 4323166[K[12;20H3[12;29H926934[12;44H412645[13;12Hlink w/ 1 Good: 2965372 Bad: 4374208[14;28H78751[14;43H60831[15;25H3[15;37H2[15;58H33[16;25H86[16;38H85[16;57H3.96[18;54H8[18;67H8
5555[43d[11;28H5246[11;43H77513[12;12Hno link Good: 2961941 Bad: 4468035[K[13;12Hno link Good: 3000920 Bad: 4429057[K[14;26H3014300[14;42H415678[15;25H6[15;37H5[15;59H8[16;24H719[16;37H718[16;60H7[18;53H32[18;66H32
5556[43d[11;28H71644[11;42H448729[12;28H79563[12;42H540811[13;12Hlink w/ 2 Good: 3019211 Bad: 4501164[14;28H32849[14;43H87527[15;25H8[15;37H7[15;59H7[16;25H52[16;38H51[18;54H6[18;67H6
5557[43d[11;12Hlink w/ 4 Good: 3119034 Bad: 4491732[12;12Hlink w/ 3 Good: 3026102 Bad: 4584666[13;20H1[13;30H6625[13;45H44518[14;28H79897[14;42H530873[15;23H200[15;37H9[16;25H85[16;38H84[16;60H8[18;53H40[18;66H40
5558[43d[11;12Hno link Good: 3171019 Bad: 4530145[K[12;12Hno link Good: 3077162 Bad: 4624003[K[13;12Hno link Good: 3117698 Bad: 4583468[K[14;12Hlink w/ 3 Good: 3131423 Bad: 4569745[15;25H3[15;35H202[15;58H42[16;24H818[16;37H817[18;54H4[18;67H4
5559[43d[11;28H90173[11;42H601388[12;12Hlink w/ 4 Good: 3094766 Bad: 4696796[13;28H3598[13;42H655575[14;12Hno link Good: 3149884 Bad: 4641680[K[15;25H5[15;37H4[15;59H1[16;25H51[16;38H50[18;54H8[18;67H8
5560[43d[11;12Hlink w/ 4 Good: 3217245 Bad: 4664711[12;12Hno link Good: 3120653 Bad: 4761304[K[13;28H62489[13;42H719469[14;12Hlink w/ 2 Good: 3176543 Bad: 4705416[15;25H8[15;37H7[15;59H6[16;25H85[16;38H84[16;60H9[18;53H52[18;66H52
5561[43d[11;20H2[11;30H70346[11;44H702005[12;12Hlink w/ 3 Good: 3172961 Bad: 4799391[13;27H215195[13;43H57158[14;12Hno link Good: 3229297 Bad: 4743057[K[15;24H10[15;37H9[15;59H5[16;24H918[16;37H917[16;57H4.00[18;54H6[18;67H6
5562[43d[11;29H308587[11;45H54161[12;12Hno link Good: 3210029 Bad: 4852720[K[13;28H52750[13;42H810000[14;28H67074[14;43H9567[15;25H2[15;36H11[15;59H4[16;25H51[16;38H50[18;53H60[18;66H60
5563[43d[11;12Hno link Good: 3327665 Bad: 4825480[K[12;12Hlink w/ 1 Good: 3227749 Bad: 4925397[13;28H71022[13;43H82125[14;28H85570[14;42H867578[15;25H5[15;37H4[15;58H38[16;25H84[16;38H83[16;57H3.96[18;54H4[18;67H4
5564[43d[11;28H64110[11;43H79432[12;20H4[12;30H6288[12;45H80654[13;12Hlink w/ 2 Good: 3306731 Bad: 4936813[14;27H321503[14;42H922042[15;25H7[15;37H6[15;59H7[16;23H3017[16;36H3016[16;60H7[18;54H8[18;67H8
5565[43d[11;12Hlink w/ 4 Good: 3417219 Bad: 4916718[12;20H3[12;29H315192[12;43H5018747[13;12Hno link Good: 3359369 Bad: 4974571[K[14;12Hlink w/ 3 Good: 3374266 Bad: 4959675[15;25H9[15;37H8[15;59H6[16;25H50[16;38H49[18;53H72[18;66H72
5566[43d[11;12Hno link Good: 3441737 Bad: 4982594[K[12;30H38324[12;45H86008[13;28H83094[13;41H5041239[14;12Hno link Good: 3398074 Bad: 5026260[K[15;24H22[15;36H21[15;58H41[16;25H83[16;38H82[16;60H8[18;54H6[18;67H6
5567[43d[11;12Hlink w/ 2 Good: 3462343 Bad: 5052385[12;20H1[12;30H57595[12;44H157135[13;12Hlink w/ 2 Good: 3402995 Bad: 5111736[14;27H418118[14;43H96614[15;25H4[15;37H3[15;59H0[16;24H117[16;37H116[18;53H80[18;66H80
5568[43d[11;20H4[11;29H515397[11;45H89727[12;29H409938[12;45H95188[13;30H5561[13;45H49512[14;12Hlink w/ 3 Good: 3470926 Bad: 5134202[15;25H7[15;37H6[15;59H5[16;25H50[16;38H49[16;60H9[18;54H4[18;67H4
5569[43d[11;12Hno link Good: 3560188 Bad: 5135331[K[12;12Hno link Good: 3453708 Bad: 5241812[K[13;20H1[13;30H99803[13;45H95719[14;12Hno link Good: 3515201 Bad: 5180322[K[15;25H9[15;37H8[15;59H4[16;25H83[16;38H82[18;54H8[18;67H8
5570[43d[11;28H79327[11;42H206588[12;28H71327[12;42H314590[13;12Hno link Good: 3518149 Bad: 5267769[K[14;28H33700[14;42H252219[15;24H31[15;36H30[15;59H3[16;24H216[16;37H215[16;57H4.00[18;53H92[18;66H92
5571[43d[11;27H613670[11;43H62642[12;27H504626[12;43H71688[13;28H51777[13;42H324538[14;12Hlink w/ 2 Good: 3567564 Bad: 5308752[15;25H4[15;37H3[15;59H8[16;25H49[16;38H48[18;54H6[18;67H6
5572[43d[11;12Hlink w/ 3 Good: 3666805 Bad: 5299903[12;28H56978[12;42H409731[13;27H604451[13;43H62259[14;20H1[14;29H620362[14;45H46349[15;25H6[15;37H5[15;58H37[16;25H82[16;38H81[16;57H3.97[18;52H400[18;65H400
5573[43d[11;20H2[11;29H703106[11;44H353995[12;12Hlink w/ 4 Good: 3592150 Bad: 5464952[13;28H40190[13;42H416913[14;12Hno link Good: 3656251 Bad: 5400853[K[15;25H9[15;37H8[15;58H41[16;24H315[16;37H314[18;54H4[18;67H4
5574[43d[11;12Hno link Good: 3722087 Bad: 5425415[K[12;12Hno link Good: 3609847 Bad: 5537656[K[13;28H58435[13;43H89069[14;28H74714[14;43H72792[15;24H41[15;36H40[15;59H0[16;25H49[16;38H48[16;60H8[18;54H8[18;67H8
5575[43d[11;12Hlink w/ 2 Good: 3770029 Bad: 5467868[12;12Hlink w/ 3 Good: 3657042 Bad: 5580856[13;27H705989[13;42H531911[14;12Hlink w/ 2 Good: 3722407 Bad: 5515494[15;25H3[15;37H2[16;25H82[16;38H81[18;53H12[18;66H12
5576[43d[11;12Hno link Good: 3814045 Bad: 5514249[K[12;20H1[12;29H700110[12;44H628185[13;12Hlink w/ 4 Good: 3749469 Bad: 5578827[14;12Hno link Good: 3766038 Bad: 5562259[K[15;25H6[15;37H5[15;59H4[16;24H415[16;37H414[18;54H6[18;67H6
5577[43d[11;12Hlink w/ 4 Good: 3867124 Bad: 5551567[12;12Hno link Good: 3752464 Bad: 5666228[K[13;20H1[13;29H802136[13;44H61655[14;27H81885[14;43H99837[15;25H8[15;37H7[15;59H3[16;25H48[16;38H47[16;60H9[18;53H20[18;66H20
5578[43d[11;12Hno link Good: 3911610 Bad: 5597478[K[12;28H95977[12;42H713113[13;12Hno link Good: 3845993 Bad: 5663098[K[14;28H6284[14;42H646244[15;24H50[15;37H9[16;25H81[16;38H80[18;54H4[18;67H4
5579[43d[11;12Hlink w/ 4 Good: 3930728 Bad: 5668754[12;27H813610[12;43H8587[13;28H64311[13;42H735173[14;28H81297[14;42H718189[15;25H3[15;36H52[15;59H7[16;24H514[16;37H513[16;57H4.00[18;54H8[18;67H8
5580[43d[11;20H2[11;30H65287[11;44H724590[12;12Hlink w/ 3 Good: 3847068 Bad: 5842811[13;12Hlink w/ 4 Good: 3898317 Bad: 5791563[14;12Hlink w/ 1 Good: 3915483 Bad: 5774398[15;25H5[15;37H4[15;59H6[16;25H47[16;38H46[18;53H32[18;66H32
5581[43d[11;28H4018346[11;45H61928[12;20H1[12;30H99387[12;45H80888[13;12Hno link Good: 3950983 Bad: 5829293[K[14;30H68280[14;44H811997[15;25H8[15;37H7[15;59H0[16;25H81[16;38H80[16;57H3.97[18;54H6[18;67H6
5582[43d[11;20H4[11;30H53647[11;44H817021[12;12Hno link Good: 3933384 Bad: 5937285[K[13;28H85624[13;43H85046[14;12Hno link Good: 4003063 Bad: 5867608[K[15;24H60[15;37H9[16;24H614[16;37H613[18;53H40[18;66H40
5583[43d[11;12Hno link Good: 4072713 Bad: 5888353[K[12;28H51065[12;41H6010002[13;26H4003930[13;42H957138[14;12Hlink w/ 2 Good: 4021602 Bad: 5939468[15;25H2[15;36H61[15;58H39[16;25H47[16;38H46[16;60H8[18;54H4[18;67H4
5584[43d[11;12Hlink w/ 3 Good: 4121007 Bad: 5930456[12;12Hlink w/ 4 Good: 3998603 Bad: 6052861[13;12Hlink w/ 4 Good: 4051770 Bad: 5999695[14;20H3[14;30H69649[14;45H81817[15;25H5[15;37H4[15;58H43[16;25H80[16;38H79[18;54H8[18;67H8
5585[43d[11;12Hno link Good: 4171971 Bad: 5969888[K[12;12Hno link Good: 4048742 Bad: 6093118[K[13;29H102334[13;43H6039528[14;12Hno link Good: 4120260 Bad: 6021603[K[15;25H7[15;37H6[15;59H2[16;24H713[16;37H712[16;60H9[18;53H52[18;66H52
5586[43d[11;28H91064[11;41H6041193[12;12Hlink w/ 4 Good: 4066286 Bad: 6165972[13;12Hno link Good: 4120632 Bad: 6111627[K[14;28H3862[14;43H93640[15;25H9[15;37H8[16;25H46[16;38H45[18;54H6[18;67H6
5587[43d[11;12Hlink w/ 3 Good: 4219178 Bad: 6103475[12;20H3[12;30H93169[12;44H229485[13;28H47895[13;43H74760[14;28H6627[14;42H156386[15;24H72[15;36H71[15;59H6[16;25H79[16;38H78[18;53H60[18;66H60
5588[43d[11;30H72287[11;45H40763[12;20H4[12;29H145484[12;45H67567[13;12Hlink w/ 4 Good: 4200554 Bad: 6212499[14;12Hlink w/ 2 Good: 4219090 Bad: 6193964[15;25H4[15;37H3[15;59H5[16;24H813[16;37H812[16;57H4.00[18;54H4[18;67H4
5589[43d[11;12Hno link Good: 4309545 Bad: 6193901[K[12;20H3[12;30H81597[12;44H321850[13;12Hno link Good: 4237228 Bad: 6266220[K[14;20H3[14;30H55854[14;44H247595[15;25H7[15;37H6[15;59H9[16;25H46[16;38H45[18;54H8[18;67H8
5590[43d[11;28H2873[11;42H265104[12;12Hno link Good: 4199260 Bad: 6394580[K[13;28H55542[13;42H338299[14;20H1[14;30H74222[14;44H319621[15;25H9[15;37H8[15;58H3[16;25H79[16;38H78[16;57H3.97[18;53H72[18;66H72
5591[43d[11;12Hlink w/ 2 Good: 4365987 Bad: 6318251[12;12Hlink w/ 1 Good: 4235408 Bad: 6448831[13;12Hlink w/ 4 Good: 4292224 Bad: 6392016[14;20H2[14;29H311147[14;45H73094[15;24H81[15;36H80[16;24H912[16;37H911[16;60H8[18;54H6[18;67H6
5592[43d[11;12Hno link Good: 4419026 Bad: 6355607[K[12;12Hno link Good: 4287766 Bad: 6486868[K[13;20H2[13;29H344932[13;44H429704[14;20H1[14;30H6393[14;44H410700[15;25H4[15;37H3[15;58H42[16;25H45[16;38H44[18;53H80[18;66H80
5593[43d[11;12Hlink w/ 2 Good: 4442736 Bad: 6422294[12;12Hlink w/ 3 Good: 4309968 Bad: 6555063[13;12Hno link Good: 4367786 Bad: 6497247[K[14;12Hno link Good: 4386919 Bad: 6478115[K[15;25H6[15;37H5[16;25H78[16;38H77[18;54H4[18;67H4
5594[43d[11;12Hno link Good: 4464213 Bad: 6491209[K[12;12Hno link Good: 4329992 Bad: 6625431[K[13;12Hlink w/ 4 Good: 4388468 Bad: 6566957[14;12Hlink w/ 2 Good: 4407908 Bad: 6547518[15;25H8[15;37H7[15;59H1[16;23H4011[16;36H4010[16;60H9[18;54H8[18;67H8
5595[43d[11;27H517305[11;42H528516[12;12Hlink w/ 4 Good: 4382298 Bad: 6663525[13;12Hno link Good: 4441135 Bad: 6604689[K[14;20H1[14;30H60736[14;45H85089[15;24H91[15;36H90[15;59H5[16;25H45[16;38H44[18;53H92[18;66H92
5596[43d[11;12Hlink w/ 4 Good: 4561251 Bad: 6574966[12;29H425172[12;44H711046[13;28H84487[13;43H51732[14;12Hno link Good: 4504211 Bad: 6632009[K[15;25H3[15;37H2[15;59H4[16;25H78[16;38H77[18;54H6[18;67H6
5597[43d[11;12Hno link Good: 4580382 Bad: 6646232[K[12;20H3[12;30H42808[12;45H83807[13;27H502800[13;42H723816[14;28H22700[14;42H703917[15;25H6[15;37H5[15;59H8[16;24H111[16;37H110[16;57H4.00[18;52H500[18;65H500
5598[43d[11;12Hlink w/ 4 Good: 4615500 Bad: 6701508[12;30H7689[12;44H840111[13;12Hlink w/ 2 Good: 4537339 Bad: 6779671[14;28H57518[14;43H59493[15;25H8[15;37H7[15;59H7[16;25H44[16;38H43[18;54H4[18;67H4
5599[43d[11;12Hno link Good: 4668621 Bad: 6738781[K[12;12Hno link Good: 4529240 Bad: 6878163[K[13;30H9002[13;44H817376[14;27H610289[14;43H97117[15;23H300[15;37H9[15;58H38[16;25H77[16;38H76[16;57H3.98[18;54H8[18;67H8
5600[43d[11;12Hlink w/ 4 Good: 4704037 Bad: 6793765[12;12Hlink w/ 4 Good: 4563540 Bad: 6934264[13;12Hno link Good: 4624816 Bad: 6872989[K[14;28H45078[14;42H852728[15;25H3[15;35H302[15;58H42[16;24H210[16;37H209[18;53H12[18;66H12
5601[43d[11;12Hno link Good: 4723248 Bad: 6864946[K[12;12Hno link Good: 4581146 Bad: 7007050[K[13;28H43047[13;42H945150[14;12Hlink w/ 2 Good: 4663496 Bad: 6924702[15;25H5[15;37H4[15;59H1[16;25H44[16;38H43[18;54H6[18;67H6
5602[43d[11;12Hlink w/ 4 Good: 4772136 Bad: 6906456[12;27H629232[12;43H49361[13;12Hlink w/ 2 Good: 4691487 Bad: 6987108[14;29H712159[14;45H66437[15;25H7[15;37H6[16;25H77[16;38H76[16;60H9[18;53H20[18;66H20
5603[43d[11;20H3[11;29H816152[11;45H52838[12;28H72244[12;43H96747[13;29H734950[13;43H7034042[14;12Hno link Good: 4755690 Bad: 7013303[K[15;24H10[15;37H9[15;59H4[16;24H310[16;37H309[18;54H4[18;67H4
5604[43d[11;12Hno link Good: 4869231 Bad: 6990154[K[12;12Hlink w/ 4 Good: 4724564 Bad: 7134823[13;20H1[13;30H87612[13;45H71776[14;27H808462[14;43H50927[15;25H2[15;36H11[16;25H43[16;38H42[18;54H8[18;67H8
5605[43d[11;27H912926[11;41H7036849[12;12Hno link Good: 4767104 Bad: 7182672[K[13;12Hno link Good: 4830621 Bad: 7119156[K[14;28H51648[14;43H98131[15;25H5[15;37H4[15;59H7[16;25H76[16;38H75[18;53H32[18;66H32
5606[43d[11;28H32067[11;42H10810[12;12Hlink w/ 4 Good: 4784829 Bad: 7255348[13;28H48900[13;43H91278[14;12Hlink w/ 1 Good: 4870225 Bad: 7169954[15;25H7[15;37H6[15;59H6[16;24H409[16;37H408[16;57H4.00[18;54H6[18;67H6
5607[43d[11;28H67662[11;43H62911[12;12Hno link Good: 4819220 Bad: 7311355[K[13;28H8374[13;42H246836[14;12Hno link Good: 4905244 Bad: 7225333[K[15;25H9[15;37H8[16;25H42[16;38H41[18;53H40[18;66H40
5608[43d[11;26H5020798[11;42H200167[12;28H71597[12;43H49369[13;12Hlink w/ 4 Good: 4936425 Bad: 7284543[14;12Hlink w/ 2 Good: 4958027 Bad: 7262941[15;24H22[15;36H21[15;59H1[16;25H76[16;38H75[16;57H3.98[18;54H4[18;67H4
5609[43d[11;28H55200[11;43H56168[12;27H904769[12;42H40659[13;12Hno link Good: 4970136 Bad: 7341234[K[14;12Hno link Good: 4991859 Bad: 7319512[K[15;25H4[15;37H3[16;24H509[16;37H508[18;54H8[18;67H8
5610[43d[11;28H74342[11;42H327419[12;28H2245[12;43H79303[13;28H88460[13;42H413303[14;26H5010437[14;43H91327[15;25H6[15;37H5[15;59H0[16;25H42[16;38H41[18;53H52[18;66H52
5611[43d[11;27H123486[11;43H68674[12;12Hlink w/ 4 Good: 4970894 Bad: 7521268[13;12Hlink w/ 2 Good: 5037252 Bad: 7454911[14;28H59319[14;42H432845[15;25H9[15;37H8[15;59H3[16;25H75[16;38H74[16;60H9[18;54H6[18;67H6
5612[43d[11;28H73629[11;42H408925[12;12Hno link Good: 5020120 Bad: 7562436[K[13;12Hno link Good: 5086888 Bad: 7495669[K[14;12Hlink w/ 1 Good: 5109046 Bad: 7473512[15;24H31[15;36H30[16;24H608[16;37H607[18;53H60[18;66H60
5613[43d[11;28H92737[11;43H8021[12;28H37748[12;42H63520[13;27H105169[13;42H567786[14;12Hno link Good: 5127555 Bad: 7545401[K[15;25H4[15;37H3[15;59H6[16;25H41[16;38H40[18;54H4[18;67H4
5614[43d[11;12Hlink w/ 4 Good: 5221533 Bad: 7541816[12;12Hlink w/ 4 Good: 5065410 Bad: 7697940[13;28H33375[13;42H62997[14;12Hlink w/ 2 Good: 5155991 Bad: 7607361[15;25H6[15;37H5[16;25H74[16;38H73[18;54H8[18;67H8
5615[43d[11;12Hno link Good: 5274663 Bad: 7579078[K[12;12Hno link Good: 5117763 Bad: 7735979[K[13;28H86094[13;43H67649[14;20H3[14;29H20881[14;45H44934[15;25H8[15;37H7[15;59H5[16;24H708[16;37H707[16;57H4.00[18;53H72[18;66H72
5616[43d[11;12Hlink w/ 4 Good: 5311099 Bad: 7633042[12;28H52992[12;43H91150[13;12Hlink w/ 4 Good: 5221829 Bad: 7722315[14;12Hno link Good: 5244660 Bad: 7699485[K[15;24H41[15;36H40[15;59H8[16;25H41[16;38H40[18;54H6[18;67H6
5617[43d[11;12Hno link Good: 5330206 Bad: 7704329[K[12;28H7058[12;42H863954[13;12Hno link Good: 5240063 Bad: 7794474[K[14;28H63098[14;42H771440[15;25H3[15;37H2[15;59H0[16;25H74[16;38H73[16;57H3.98[18;53H80[18;66H80
5618[43d[44;1H[?1049l
5619[?1l>Caught SIGINT. Exiting...
5620]0;root@node1-1.sb9.orbit-lab.org: ~root@node1-1:~# ~netfpga/netfpga/projects/selftest/sw/selftest -cn
5621Found net device: nf2c0
5622CPCI Information
5623----------------
5624Version: 4 (rev 1)
5625
5626Device (Virtex) Information
5627---------------------------
5628Project directory: selftest
5629Project name: Selftest
5630Project description: NetFPGA selftest -- exercises all major subsystems of the board
5631
5632Device ID: 5
5633Version: 1.1.0
5634Built against CPCI version: 4 (rev 1)
5635
5636[?1049h[1;44r[m(B[4l[?7h[H[2J[0;7m(B NetFPGA selftest v1.00 alpha [3;1H[m(BClock test: pass
5637Reg test: pass
5638MDIO test: pass
5639[6GPhy 1: rev 1 up, 1000Base-TX full
5640[6GPhy 2: rev 1 up, 1000Base-TX full
5641[6GPhy 3: rev 1 up, 1000Base-TX full
5642[6GPhy 4: rev 1 up, 1000Base-TX full
5643PHY test: fail
5644 Port 1: no link Good: 4243 Bad: 13088
5645 Port 2: no link Good: 0 Bad: 0
5646 Port 3: no link Good: 3229 Bad: 14106
5647 Port 4: link w/ 3 Good: 2766 Bad: 14570
5648DRAM test: Iteration: 1 Good: 0 Bad: 0 B/W: nan Gbps
5649SRAM test: Iteration: 1 Good: 0 Bad: 0 B/W: nan Gbps
5650SATA Test Disabled
5651DMA test: Iteration(one pkt write, read, compare): 40 Good: 40 Bad: 0
5652[44d[0;7m(BQ[m(B Quit
5653[A[11;26H26409 Bad: 81517[13;26H20490 Bad: 87439[14;12Hno link Good: 18031 Bad: 89899[K[15;23H3[15;33H2[15;51H10.74 Gbps[16;23H34 Good: 33 Bad: 0 B/W: 4.43 Gbps[18;52H8[18;63H8
5654[43d[11;26H67237[11;39H131056[12;35H2[13;26H6034[13;39H137956[14;12Hlink w/ 3 Good: 51095 Bad: 147202[15;23H6[15;33H5[15;51H8.95 Gbps[K[16;23H67[16;34H66[16;53H2.95
5655
5656[52G120 Good: 120 Bad: 0
5657[43d[11;12Hlink w/ 3 Good: 112340 Bad: 176342[13;26H105383 Bad: 183302[14;12Hno link Good: 96400 Bad: 192285[K[15;23H8[15;33H7[15;51H9.40[16;23H100 Good: 99 Bad: 0 B/W: 3.32 Gbps[18;53H6[18;65H6
5658[43d[11;12Hno link Good: 134439 Bad: 244640[K[13;12Hlink w/ 1 Good: 122576 Bad: 256506[14;12Hlink w/ 3 Good: 118856 Bad: 260227[15;23H10 Good: 9 Bad: 0 B/W: 9.66 Gbps[16;24H34[16;35H133 Bad: 0 B/W: 3.57 Gbps[18;52H20[18;64H20
5659[43d[11;27H61511[11;40H307963[12;35H4[13;12Hno link Good: 145323 Bad: 324153[K[14;29H34358[14;42H335119[15;24H3[15;34H12 Bad: 0 B/W: 10.74 Gbps[16;24H67[16;36H66[16;57H71[18;53H4[18;65H4
5660[43d[11;12Hlink w/ 4 Good: 206815 Bad: 353056[13;12Hlink w/ 1 Good: 190618 Bad: 369255[14;12Hno link Good: 179278 Bad: 380596[K[15;24H5[15;35H4[16;23H200[16;36H99[16;57H82[18;53H8[18;65H8
5661[43d[11;20H3[11;29H45590[11;42H404671[13;12Hno link Good: 227742 Bad: 422521[K[14;26H218735[14;40H431530[15;24H7[15;35H6[16;24H33[16;35H232[16;58H9[18;52H32[18;64H32
5662[43d[11;12Hno link Good: 267676 Bad: 472984[K[13;12Hlink w/ 1 Good: 244685 Bad: 495978[14;27H35198[14;40H505466[15;23H20[15;35H9[15;54H1.33[16;24H66[16;36H65[16;57H95[18;53H6[18;65H6
5663[43d[11;26H304015[11;40H527041[12;35H6[13;20H4[13;29H79234[13;42H551825[14;12Hlink w/ 3 Good: 262555 Bad: 568505[15;24H2[15;34H21[15;56H27[16;24H99[16;36H98[16;55H4.00[18;52H40[18;64H40
5664[43d[11;12Hlink w/ 3 Good: 349323 Bad: 572131[13;12Hno link Good: 324530 Bad: 596926[K[14;28H307859[14;42H613599[15;24H5[15;35H4[15;56H71[16;23H332[16;35H331[16;58H4[18;53H4[18;65H4
5665[43d[11;12Hno link Good: 375703 Bad: 636144[K[13;12Hlink w/ 4 Good: 347063 Bad: 664787[14;12Hno link Good: 335917 Bad: 675934[K[15;24H7[15;35H6[15;54H0.74[16;24H66[16;36H65[16;55H3.77[18;53H8[18;65H8
5666[43d[11;27H9818[11;40H704062[12;35H8[13;12Hno link Good: 364460 Bad: 737787[K[14;27H51720[14;40H750528[15;24H9[15;35H8[16;24H99[16;36H98[16;57H82[18;52H52[18;64H52
5667[43d[11;26H443508[11;41H49136[13;12Hlink w/ 1 Good: 409768 Bad: 782879[14;27H9098[14;40H80166[15;23H32[15;34H31[15;54H1.10[16;23H432[16;35H431[16;58H6[18;53H6[18;65H6
5668[43d[11;27H83706[11;41H99333[13;12Hno link Good: 448899 Bad: 834143[K[14;26H436289[14;41H46753[15;24H4[15;35H3[15;56H07[16;24H65[16;36H64[16;58H9[18;52H60[18;64H60
5669[43d[11;26H505771[11;40H867664[13;27H65893[13;40H907545[14;12Hlink w/ 3 Good: 452439 Bad: 921000[15;24H6[15;35H5[15;57H5[16;24H98[16;36H97[16;57H92[18;53H4[18;65H4
5670[43d[11;27H37230[11;40H926601[12;35H10[13;27H94047[13;41H69786[14;12Hno link Good: 483362 Bad: 980472[K[15;24H9[15;35H8[15;56H33[16;23H531[16;35H530[16;58H5[18;53H8[18;65H8
5671[43d[11;12Hlink w/ 3 Good: 559278 Bad: 994949[13;26H511055[13;40H1043175[14;12Hlink w/ 1 Good: 499112 Bad: 1055119[15;23H41[15;34H40[15;57H0[16;24H64[16;36H63[16;58H8[18;52H72[18;64H72
5672[43d[11;29H95854[11;42H1048771[12;36H2[13;12Hlink w/ 1 Good: 546040 Bad: 1098587[14;20H3[28G526723[14;43H117905[15;24H4[15;35H3[15;56H54[16;24H98[16;36H97[16;55H4.01[18;53H6[18;65H6
5673[43d[11;28H6411[11;44H93866[13;29H91334[13;43H143688[14;12Hno link Good: 572029 Bad: 1162994[K[15;24H6[15;35H5[15;57H0[16;23H631[16;35H630[16;58H3[18;52H80[18;64H80
5674[43d[11;12Hno link Good: 667268 Bad: 1158146[K[13;20H4[28G613931[13;43H211485[14;27H9977[14;41H225638[15;24H8[15;35H7[15;54H0.97[16;24H64[16;36H63[16;55H3.87[18;53H4[18;65H4
5675[43d[11;27H89869[11;41H225943[12;36H4[13;20H1[13;29H31606[13;44H84209[14;26H61550[14;41H300306[15;23H51[15;34H50[15;54H1.18[16;24H97[16;36H96[16;58H9[18;53H8[18;65H8
5676[43d[11;12Hlink w/ 4 Good: 735171 Bad: 1271040[13;12Hno link Good: 676899 Bad: 1329314[K[14;27H5492[14;42H51285[15;24H3[15;35H2[15;57H7[16;23H730[16;35H729[16;57H91[18;52H92[18;64H92
5677[43d[11;12Hno link Good: 775181 Bad: 1321422[K[13;12Hlink w/ 1 Good: 715758 Bad: 1380848[14;12Hlink w/ 3 Good: 700185 Bad: 1396422[15;24H5[15;35H4[15;57H5[16;24H63[16;36H62[16;58H3[18;53H6[18;65H6
5678[43d[11;27H97130[11;42H89869[13;12Hno link Good: 732666 Bad: 1454335[K[14;12Hno link Good: 716195 Bad: 1470807[K[15;24H8[15;35H7[15;56H33[16;24H96[16;36H95[16;58H5[18;52H1000 Good: 1000 Bad: 0
5679[43d[11;26H825377[11;41H452013[12;36H6[13;12Hlink w/ 4 Good: 757511 Bad: 1519881[14;27H37890[14;41H539503[15;23H60[15;35H9[15;57H1[16;23H830[16;35H829[16;58H7
5680
5681[54G4[18;67H4
5682[43d[11;12Hlink w/ 3 Good: 870693 Bad: 1497099[13;12Hno link Good: 802815 Bad: 1564979[K[14;27H8321[14;42H84585[15;24H3[15;34H62[15;56H48[16;24H63[16;36H62[16;58H9
5683
5684[54G8[18;67H8
5685[43d[11;20H4[28G901280[11;43H556908[13;27H29949[13;41H628242[14;26H81656[14;41H641632[15;24H5[15;35H4[15;57H5[16;24H96[16;36H95[16;55H4.00[18;53H12[18;66H12
5686[43d[11;12Hno link Good: 923358 Bad: 1625220[K[13;27H47017[13;41H701563[14;27H32609[14;41H71597[15;24H7[15;35H6[15;57H3[16;23H929[16;35H928[16;58H2
5687
5688[54G6[18;67H6
5689[43d[11;12Hlink w/ 3 Good: 964837 Bad: 1674142[12;36H8[13;12Hlink w/ 1 Good: 887451 Bad: 1751530[14;27H66285[14;42H72697[15;23H70[15;35H9[15;56H2[16;24H62[16;36H61[16;55H3.91[18;53H20[18;66H20
5690[43d[11;12Hno link Good: 1009316 Bad: 1720059[K[13;12Hno link Good: 931757 Bad: 1797620[K[14;26H911604[14;41H817773[15;24H2[15;34H71[15;57H1[16;24H95[16;36H94[16;58H2
5691
5692[54G4[18;67H4
5693[43d[11;28H31317[11;43H88456[13;27H48309[13;41H871466[14;27H32[14;42H871[15;24H4[15;35H3[15;57H0[16;23H1028 Good: 1027 Bad: 0 B/W: 3.94 Gbps[18;54H8[18;67H8
5694[43d[11;12Hlink w/ 3 Good: 1058841 Bad: 1851327[12;35H20[13;12Hlink w/ 1 Good: 971899 Bad: 1938271[14;12Hlink w/ 3 Good: 948658 Bad: 1961514[15;24H7[15;35H6[15;56H33[16;25H62[16;38H61[16;60H6[18;53H32[18;66H32
5695[43d[11;12Hno link Good: 1104153 Bad: 1896410[K[13;12Hno link Good: 1017205 Bad: 1983360[K[14;12Hno link Good: 993979 Bad: 2006587[K[15;24H9[15;35H8[15;57H2[16;25H95[16;38H94[16;60H7[18;54H6[18;67H6
5696[43d[11;28H42236[11;42H948723[13;28H5365[13;41H2037306[14;12Hlink w/ 1 Good: 1033060 Bad: 2057903[15;23H82[15;34H81[15;56H44[16;24H128[16;37H127[16;60H8[18;53H40[18;66H40
5697[43d[11;28H64295[11;41H2017059[13;28H71408[13;42H109948[14;12Hno link Good: 1049237 Bad: 2132121[K[15;24H4[15;35H3[15;57H3[16;25H61[16;38H60[16;60H9[18;54H4[18;67H4
5698[43d[11;27H201228[11;43H70521[12;36H2[13;27H106472[13;43H65279[14;28H77601[14;43H9415[15;24H6[15;35H5[15;57H1[16;25H94[16;38H93[16;57H4.00[18;54H8[18;67H8
5699[43d[11;28H46534[11;42H115612[13;28H51781[13;42H210368[14;12Hlink w/ 3 Good: 1122907 Bad: 2239243[15;24H9[15;35H8[15;56H25[16;24H227[16;37H226[16;57H3.92[18;53H52[18;66H52
5700[43d[11;12Hlink w/ 3 Good: 1272340 Bad: 2180203[13;28H73540[13;43H79005[14;12Hno link Good: 1149949 Bad: 2302598[K[15;23H91[15;34H90[15;57H4[16;25H60[16;38H59[16;60H3[18;54H6[18;67H6
5701[43d[11;30H95515[11;44H247428[12;36H4[13;28H91629[13;42H351316[14;12Hlink w/ 1 Good: 1165544 Bad: 2377401[15;24H3[15;35H2[15;57H3[16;25H94[16;38H93[16;60H4[18;53H60[18;66H60
5702[43d[11;12Hno link Good: 1340845 Bad: 2292492[K[13;27H236934[13;43H9640[14;20H3[14;29H205679[14;44H427662[15;24H6[15;35H5[15;56H3[16;24H327[16;37H326[16;60H5[18;54H4[18;67H4
5703[43d[11;28H80460[11;42H34327[13;28H75181[13;42H448553[14;12Hno link Good: 1250383 Bad: 2473352[K[15;24H8[15;35H7[15;57H2[16;25H60[16;38H59[16;60H7[18;54H8[18;67H8
5704[43d[11;27H402507[11;42H411624[13;12Hlink w/ 1 Good: 1292609 Bad: 2521525[14;28H65704[14;42H548431[15;23H101 Good: 100 Bad: 0 B/W: 11.42 Gbps[16;25H93[16;38H92[16;60H8[18;53H72[18;66H72
5705[43d[11;28H33954[11;43H70570[12;36H6[13;29H321125[13;45H83402[14;28H96401[14;42H608127[15;25H3[15;37H2[15;59H1[16;24H426[16;37H425[18;54H6[18;67H6
5706[43d[11;12Hlink w/ 4 Good: 1456008 Bad: 2538913[13;12Hno link Good: 1338386 Bad: 2656537[K[14;27H312099[14;43H82825[15;25H5[15;37H4[15;58H39[16;25H59[16;38H58[16;60H9[18;53H80[18;66H80
5707[43d[11;20H3[11;30H93183[11;45H92134[12;36H8[13;28H73740[13;42H711580[14;12Hlink w/ 3 Good: 1340718 Bad: 2744603[15;25H8[15;37H7[15;58H4[16;25H92[16;38H91[16;57H4.00[18;54H4[18;67H4
5708[43d[11;20H4[11;29H538480[11;44H637233[13;27H419044[13;43H56671[14;12Hno link Good: 1386014 Bad: 2789703[K[15;24H10[15;37H9[15;58H25[16;24H526[16;37H525[16;57H3.94[18;54H8[18;67H8
5709[43d[11;12Hno link Good: 1564036 Bad: 2702073[K[13;28H40825[13;42H825286[14;27H413225[14;42H852887[15;25H2[15;36H11[15;59H4[16;25H59[16;38H58[16;60H5[18;53H92[18;66H92
5710[43d[11;12Hlink w/ 4 Good: 1587372 Bad: 2769136[12;35H30[13;28H59292[13;43H97218[14;28H29419[14;42H927091[15;25H5[15;37H4[15;58H33[16;25H92[16;38H91[18;54H6[18;67H6
5711[43d[11;12Hno link Good: 1632702 Bad: 2814200[K[13;27H504597[13;42H942307[14;28H70143[14;43H76762[15;25H7[15;37H6[15;59H2[16;24H625[16;37H624[16;60H6[18;52H200[18;65H200
5712[43d[11;12Hlink w/ 3 Good: 1672085 Bad: 2865212[13;28H42680[13;43H94619[14;12Hlink w/ 1 Good: 1514597 Bad: 3022703[15;24H20[15;37H9[15;58H41[16;25H58[16;38H57[16;60H7[18;54H4[18;67H4
5713[43d[11;12Hno link Good: 1694101 Bad: 2933594[K[13;28H59275[13;41H3068422[14;12Hno link Good: 1530489 Bad: 3097209[K[15;25H2[15;36H21[15;59H0[16;25H91[16;38H90[16;60H8[18;54H8[18;67H8
5714[43d[11;27H722427[11;43H95662[12;36H2[13;12Hlink w/ 1 Good: 1583836 Bad: 3134256[14;12Hlink w/ 3 Good: 1553103 Bad: 3164990[15;25H4[15;37H3[15;58H39[16;24H724[16;37H723[16;60H9[18;53H12[18;66H12
5715[43d[11;28H6773[11;41H3040749[13;29H629137[13;45H79352[14;12Hno link Good: 1598415 Bad: 3210074[K[15;25H7[15;37H6[15;58H47[16;25H58[16;38H57[16;57H4.00[18;54H6[18;67H6
5716[43d[11;28H97805[11;42H101077[13;12Hno link Good: 1655910 Bad: 3242975[K[14;27H630826[14;43H68060[15;25H9[15;37H8[15;59H5[16;25H91[16;38H90[18;53H20[18;66H20
5717[43d[11;27H819843[11;43H69435[13;28H73186[13;42H316094[14;28H47110[14;42H342171[15;24H32[15;36H31[15;58H34[16;24H824[16;37H823[16;57H3.95[18;54H4[18;67H4
5718[43d[11;28H61872[11;42H217802[12;36H4[13;27H714512[13;43H6516[14;12Hlink w/ 3 Good: 1681667 Bad: 3398011[15;25H4[15;37H3[15;59H3[16;25H57[16;38H56[18;54H8[18;67H8
5719[43d[11;27H905788[11;43H64286[13;28H58097[13;42H411979[14;29H726982[14;44H443094[15;25H6[15;37H5[15;59H2[16;25H90[16;38H89[16;60H6[18;53H32[18;66H32
5720[43d[11;28H27926[11;42H332535[13;12Hlink w/ 1 Good: 1774609 Bad: 3485855[14;12Hno link Good: 1747950 Bad: 3512515[K[15;25H9[15;37H8[15;58H40[16;24H923[16;37H922[16;60H7[18;54H6[18;67H6
5721[43d[11;28H56134[11;43H94731[12;36H6[13;30H99183[13;44H55168[14;28H64567[14;43H86302[15;24H41[15;36H40[15;58H39[16;25H57[16;38H56[16;60H8[18;53H40[18;66H40
5722[43d[11;26H2001436[11;42H439823[13;29H844495[13;45H96767[14;12Hlink w/ 3 Good: 1809866 Bad: 3631397[15;25H3[15;37H2[15;59H8[16;25H90[16;38H89[18;54H4[18;67H4
5723[43d[11;28H38853[11;43H92801[13;12Hno link Good: 1880229 Bad: 3651428[K[14;12Hno link Good: 1848024 Bad: 3683634[K[15;25H6[15;37H5[15;58H45[16;23H2023[16;36H2022[16;60H9[18;54H8[18;67H8
5724[43d[11;28H60938[11;42H561112[13;12Hlink w/ 1 Good: 1897459 Bad: 3724594[14;28H63123[14;42H758931[15;25H8[15;37H7[15;59H4[16;25H56[16;38H55[16;57H4.00[18;53H52[18;66H52
5725[43d[11;28H98511[11;42H613936[12;36H8[13;12Hno link Good: 1933466 Bad: 3778984[K[14;28H92061[14;42H820390[15;24H51[15;36H50[15;58H50[16;25H89[16;38H88[18;54H6[18;67H6
5726[43d[11;27H143813[11;43H59030[13;28H78779[13;42H824066[14;27H937368[14;43H65478[15;25H3[15;37H2[15;58H33[16;24H122[16;37H121[16;57H3.95[18;53H60[18;66H60
5727[43d[11;28H68892[11;42H724346[13;28H9951[13;43H93722[14;12Hlink w/ 3 Good: 1963760 Bad: 3929482[15;25H5[15;37H4[16;25H55[16;38H54[16;60H6[18;54H4[18;67H4
5728[43d[11;28H92613[11;43H91023[12;35H40[13;12Hlink w/ 1 Good: 2018664 Bad: 3964975[14;12Hno link Good: 1979878 Bad: 4003761[K[15;25H8[15;37H7[15;59H9[16;25H89[16;38H88[16;60H7[18;54H8[18;67H8
5729[43d[11;12Hlink w/ 3 Good: 2237933 Bad: 3836101[13;12Hno link Good: 2063973 Bad: 4010063[K[14;26H2020779[14;43H53258[15;24H60[15;37H9[15;59H8[16;24H222[16;37H221[18;53H72[18;66H72
5730[43d[11;12Hno link Good: 2276945 Bad: 3887478[K[13;12Hlink w/ 1 Good: 2101456 Bad: 4062970[14;28H64736[14;43H99691[15;25H2[15;36H61[15;59H7[16;25H55[16;38H54[16;60H8[18;54H6[18;67H6
5731[43d[11;28H99101[11;42H955721[13;12Hno link Good: 2118513 Bad: 4136312[K[14;28H80921[14;42H173905[15;25H5[15;37H4[15;58H43[16;25H88[16;38H87[16;60H9[18;53H80[18;66H80
5732[43d[11;27H331163[11;41H4014058[12;36H2[13;28H4750[13;43H97720[14;27H111285[14;42H233939[15;25H7[15;37H6[16;24H321[16;37H320[18;54H4[18;67H4
5733[43d[11;28H53185[11;43H82429[13;28H64572[13;42H271045[14;12Hlink w/ 1 Good: 2127354 Bad: 4308264[15;24H70[15;37H9[15;59H8[16;25H54[16;38H53[16;57H4.00[18;54H8[18;67H8
5734[43d[11;12Hlink w/ 4 Good: 2390898 Bad: 4135112[12;36H4[13;12Hlink w/ 1 Good: 2201046 Bad: 4324966[14;20H3[14;30H56715[14;45H69298[15;25H2[15;36H71[16;25H87[16;38H86[18;53H92[18;66H92
5735[43d[11;29H436206[11;45H80201[13;12Hno link Good: 2246334 Bad: 4370075[K[14;12Hno link Good: 2202024 Bad: 4414387[K[15;25H4[15;37H3[15;58H33[16;24H421[16;37H420[16;57H3.96[18;54H6[18;67H6
5736[43d[11;12Hno link Good: 2461087 Bad: 4245718[K[13;28H66293[13;42H440514[14;28H28286[14;43H78522[15;25H7[15;37H6[15;59H8[16;25H54[16;38H53[16;60H7[18;52H300[18;65H300
5737[43d[11;28H85124[11;42H312077[12;36H6[13;12Hlink w/ 1 Good: 2285732 Bad: 4511472[14;12Hlink w/ 1 Good: 2243550 Bad: 4553654[15;25H9[15;37H8[16;25H87[16;38H86[18;54H4[18;67H4
5738[43d[11;12Hlink w/ 3 Good: 2530431 Bad: 4357168[13;12Hno link Good: 2331020 Bad: 4556581[K[14;20H3[14;30H84375[14;44H603228[15;24H81[15;36H80[15;59H7[16;24H520[16;37H519[16;60H8[18;54H8[18;67H8
5739[43d[11;12Hno link Good: 2569269 Bad: 4408719[K[13;28H68169[13;42H609822[14;12Hno link Good: 2327948 Bad: 4650044[K[15;25H4[15;37H3[15;58H42[16;25H53[16;38H52[18;53H12[18;66H12
5740[43d[11;28H91334[11;43H77054[13;28H85015[13;43H83376[14;28H44102[14;42H724290[15;25H6[15;37H5[16;25H86[16;38H85[16;60H9[18;54H6[18;67H6
5741[43d[11;27H621531[11;42H5372[12;36H8[13;12Hlink w/ 4 Good: 2411921 Bad: 4746867[14;12Hlink w/ 3 Good: 2367548 Bad: 4791241[15;25H9[15;37H8[15;59H7[16;24H619[16;37H618[18;53H20[18;66H20
5742[43d[11;28H66839[11;43H82340[13;20H1[13;30H57224[13;45H9195[14;12Hno link Good: 2412876 Bad: 4836306[K[15;24H91[15;36H90[15;59H6[16;25H53[16;38H52[16;57H4.00[18;54H4[18;67H4
5743[43d[11;28H96270[11;42H643307[13;30H83215[13;44H856365[14;28H44493[14;43H95088[15;25H3[15;37H2[15;59H5[16;25H86[16;38H85[18;54H8[18;67H8
5744[43d[11;27H718318[11;42H711654[13;12Hno link Good: 2499898 Bad: 4930077[K[14;12Hlink w/ 1 Good: 2459904 Bad: 4970072[15;25H6[15;37H5[15;58H38[16;24H719[16;37H718[16;57H3.97[18;53H32[18;66H32
5745[43d[11;28H60994[11;43H59379[12;35H50[13;27H542054[13;43H78321[14;20H3[14;30H94982[14;43H5025395[15;25H8[15;37H7[15;59H7[16;25H52[16;38H51[18;54H6[18;67H6
5746[43d[11;27H80428[11;42H806485[13;12Hlink w/ 1 Good: 2584866 Bad: 5025906[14;12Hno link Good: 2540285 Bad: 5070487[K[15;23H200[15;37H9[16;25H85[16;38H84[16;60H8[18;53H40[18;66H40
5747[43d[11;28H26268[11;43H74894[13;12Hno link Good: 2602058 Bad: 5099106[K[14;28H60248[14;42H140918[15;25H3[15;35H202[15;58H42[16;24H818[16;37H817[18;54H4[18;67H4
5748[43d[11;28H55061[11;42H936499[12;36H2[13;28H27162[13;42H164401[14;28H78570[14;42H212994[15;25H5[15;37H4[15;59H1[16;25H51[16;38H50[18;54H8[18;67H8
5749[43d[11;12Hlink w/ 4 Good: 2900359 Bad: 4981594[13;12Hlink w/ 4 Good: 2672449 Bad: 5209506[14;27H623877[14;43H58079[15;25H8[15;37H7[15;59H6[16;25H85[16;38H84[16;60H9[18;53H52[18;66H52
5750[43d[11;12Hno link Good: 2937206 Bad: 5035143[K[13;12Hno link Good: 2707427 Bad: 5264925[K[14;28H61362[14;42H310991[15;24H10[15;37H9[15;59H5[16;24H918[16;37H917[16;57H4.00[18;54H6[18;67H6
5751[43d[11;28H59202[11;42H103542[13;28H25331[13;42H33741[14;28H76879[14;43H85868[15;25H2[15;36H11[15;59H4[16;25H51[16;38H50[18;53H60[18;66H60
5752[43d[11;28H97373[11;43H55768[12;36H4[13;12Hlink w/ 1 Good: 2761954 Bad: 5391189[14;12Hlink w/ 3 Good: 2706909 Bad: 5446236[15;25H5[15;37H4[15;59H9[16;25H84[16;38H83[18;54H4[18;67H4
5753[43d[11;12Hlink w/ 4 Good: 3042689 Bad: 5200849[13;12Hno link Good: 2807236 Bad: 5436304[K[14;12Hno link Good: 2752212 Bad: 5491330[K[15;25H7[15;37H6[15;58H37[16;23H3017[16;36H3016[16;57H3.97[18;54H8[18;67H8
5754[43d[11;30H67206[11;45H66731[13;28H27118[13;42H506821[14;28H77457[14;42H556483[15;25H9[15;37H8[15;59H6[16;25H50[16;38H49[18;53H72[18;66H72
5755[43d[11;12Hno link Good: 3091472 Bad: 5332859[K[12;36H6[13;28H46820[13;43H77514[14;28H92968[14;42H631366[15;24H22[15;36H21[15;58H41[16;25H83[16;38H82[16;60H8[18;54H6[18;67H6
5756[43d[11;12Hlink w/ 4 Good: 3136796 Bad: 5377933[13;28H921[13;42H622611[14;27H834434[14;43H80299[15;25H4[15;37H3[15;59H0[16;24H117[16;37H116[18;53H80[18;66H80
5757[43d[11;12Hno link Good: 3175210 Bad: 5429913[K[13;27H928793[13;43H76333[14;28H77629[14;42H727498[15;25H7[15;37H6[15;59H5[16;25H50[16;38H49[16;60H9[18;54H4[18;67H4
5758[43d[11;28H97147[11;43H98371[13;28H46342[13;42H749179[14;28H93560[14;42H801962[15;25H9[15;37H8[15;59H4[16;25H83[16;38H82[18;54H8[18;67H8
5759[43d[11;12Hlink w/ 4 Good: 3229160 Bad: 5556757[12;36H8[13;12Hlink w/ 4 Good: 2976101 Bad: 5809818[14;27H923851[14;43H62070[15;24H31[15;36H30[15;59H3[16;24H216[16;37H215[16;57H4.00[18;53H92[18;66H92
5760[43d[11;12Hno link Good: 3251318 Bad: 5624997[K[13;12Hno link Good: 2993737 Bad: 5882580[K[14;28H39520[14;42H936798[15;25H4[15;37H3[15;59H8[16;25H49[16;38H48[18;54H6[18;67H6
5761[43d[11;28H89649[11;43H77058[12;35H60[13;26H3030580[13;42H93613[14;28H69395[14;43H97316[15;25H6[15;37H5[15;59H7[16;25H82[16;38H81[18;52H400[18;65H400
5762[43d[11;12Hlink w/ 4 Good: 3334951 Bad: 5722153[13;12Hlink w/ 1 Good: 3075868 Bad: 5981238[14;12Hlink w/ 3 Good: 3014707 Bad: 6042401[15;25H9[15;37H8[15;59H1[16;24H315[16;37H314[16;57H3.97[18;54H4[18;67H4
5763[43d[11;12Hno link Good: 3359199 Bad: 5788302[K[13;20H4[13;30H95855[13;43H6051649[14;12Hno link Good: 3040082 Bad: 6107423[K[15;24H41[15;36H40[15;59H0[16;25H49[16;38H48[16;60H8[18;54H8[18;67H8
5764[43d[11;12Hlink w/ 3 Good: 3383667 Bad: 5854236[12;36H2[13;12Hno link Good: 3115667 Bad: 6122238[K[14;28H56257[14;43H81648[15;25H3[15;37H2[16;25H82[16;38H81[18;53H12[18;66H12
5765[43d[11;12Hno link Good: 3428966 Bad: 5899328[K[13;12Hlink w/ 4 Good: 3160975 Bad: 6167322[14;12Hlink w/ 3 Good: 3098094 Bad: 6230204[15;25H6[15;37H5[15;59H4[16;24H415[16;37H414[18;54H6[18;67H6
5766[43d[11;28H67159[11;42H951530[13;12Hno link Good: 3197470 Bad: 6221221[K[14;12Hno link Good: 3141064 Bad: 6277628[K[15;25H8[15;37H7[15;59H3[16;25H48[16;38H47[16;60H9[18;53H20[18;66H20
5767[43d[11;28H89323[11;41H6019764[13;27H214791[13;43H94299[14;28H57401[14;42H351690[15;24H50[15;37H9[16;25H81[16;38H80[18;54H4[18;67H4
5768[43d[11;27H520082[11;43H79398[12;36H4[13;12Hlink w/ 1 Good: 3243150 Bad: 6356332[14;12Hlink w/ 3 Good: 3181562 Bad: 6417921[15;25H3[15;36H52[15;59H7[16;24H514[16;37H513[16;57H4.00[18;54H8[18;67H8
5769[43d[11;12Hlink w/ 3 Good: 3565401 Bad: 6124479[13;30H88463[13;44H401419[14;29H226871[14;45H63012[15;25H5[15;37H4[15;59H6[16;25H47[16;38H46[18;53H32[18;66H32
5770[43d[11;12Hno link Good: 3594246 Bad: 6186027[K[13;12Hno link Good: 3314408 Bad: 6465867[K[14;12Hno link Good: 3258226 Bad: 6522050[K[15;25H8[15;37H7[15;58H50[16;25H81[16;38H80[18;54H6[18;67H6
5771[43d[11;27H616264[11;42H254406[13;12Hlink w/ 1 Good: 3331352 Bad: 6539320[14;12Hlink w/ 1 Good: 3274284 Bad: 6596389[15;24H60[15;37H9[15;58H4[16;24H614[16;37H613[16;57H3.97[18;53H40[18;66H40
5772[43d[11;28H5950[11;42H301554[12;36H6[13;12Hno link Good: 3374253 Bad: 6586808[K[14;20H3[14;29H310391[14;44H650671[15;25H2[15;36H61[15;58H39[16;25H47[16;38H46[16;60H8[18;54H4[18;67H4
5773[43d[11;12Hlink w/ 3 Good: 3702190 Bad: 6349272[13;27H416459[13;42H635005[14;30H55709[14;45H95756[15;25H5[15;37H4[15;58H43[16;25H80[16;38H79[18;54H8[18;67H8
5774[43d[11;12Hno link Good: 3724225 Bad: 6417636[K[13;12Hlink w/ 4 Good: 3433751 Bad: 6708112[14;12Hno link Good: 3375353 Bad: 6766512[K[15;25H7[15;37H6[15;59H2[16;24H713[16;37H712[16;60H9[18;53H52[18;66H52
5775[43d[11;28H53571[11;43H78684[12;36H8[13;20H1[13;30H59649[13;45H72608[14;12Hlink w/ 3 Good: 3393874 Bad: 6838385[15;25H9[15;37H8[16;25H46[16;38H45[18;54H6[18;67H6
5776[43d[11;28H98875[11;42H523777[13;12Hno link Good: 3504947 Bad: 6817707[K[14;12Hno link Good: 3439173 Bad: 6883483[K[15;24H72[15;36H71[15;59H6[16;25H79[16;38H78[18;53H60[18;66H60
5777[43d[11;27H835213[11;43H77834[13;28H3950[13;43H73543[14;28H76277[14;42H936774[15;25H4[15;37H3[15;59H5[16;24H813[16;37H812[16;57H4.00[18;54H4[18;67H4
5778[43d[11;28H57240[11;42H646201[13;12Hlink w/ 4 Good: 3556761 Bad: 6946682[14;28H91955[14;41H7011489[15;25H7[15;37H6[15;59H9[16;25H46[16;38H45[18;54H8[18;67H8
5779[43d[11;12Hlink w/ 4 Good: 3896020 Bad: 6697818[12;35H70[13;12Hno link Good: 3594390 Bad: 6999450[K[14;27H522487[14;43H71354[15;25H9[15;37H8[15;59H8[16;25H79[16;38H78[18;53H72[18;66H72
5780[43d[11;12Hno link Good: 3941319 Bad: 6742915[K[13;27H639704[13;41H7044533[14;12Hlink w/ 3 Good: 3567790 Bad: 7116448[15;24H81[15;36H80[15;58H39[16;24H912[16;37H911[16;57H3.98[18;54H6[18;67H6
5781[43d[11;12Hlink w/ 3 Good: 3965263 Bad: 6809368[13;28H58966[13;42H115668[14;12Hno link Good: 3593141 Bad: 7181494[K[15;25H4[15;37H3[15;58H42[16;25H45[16;38H44[18;53H80[18;66H80
5782[43d[44;1H[?1049l
5783[?1l>]0;root@node1-1.sb9.orbit-lab.org: ~root@node1-1:~# lear
5784No command 'lear' found, did you mean:
5785 Command 'klear' from package 'klear' (universe)
5786 Command 'leaf' from package 'cone' (universe)
5787 Command 'clear' from package 'ncurses-bin' (main)
5788 Command 'pear' from package 'php-pear' (main)
5789lear: command not found
5790]0;root@node1-1.sb9.orbit-lab.org: ~root@node1-1:~# clear
5791[H[2J]0;root@node1-1.sb9.orbit-lab.org: ~root@node1-1:~# clear
5792[H[2J]0;root@node1-1.sb9.orbit-lab.org: ~root@node1-1:~# exit
5793logout
5794]0;netfpga@node1-1: ~/netfpga/projects/selftest/swnetfpga@node1-1:~/netfpga/projects/selftest/sw$ pwd
5795/home/netfpga/netfpga/projects/selftest/sw
5796]0;netfpga@node1-1: ~/netfpga/projects/selftest/swnetfpga@node1-1:~/netfpga/projects/selftest/sw$ ls
5797[0m[01;32mbad_pkt_dump[0m or_ip.c or_utils.o selftest_clk.o selftest_dram.h selftest_mdio.o selftest_reg.c selftest_serial.o
5798bad_pkt_dump.c or_ip.h [01;32mselftest[0m selftest_dma.c selftest_dram.o selftest.o selftest_reg.h selftest_sram.c
5799bad_pkt_dump.o or_ip.o selftest.c selftest_dma.h selftest.h selftest_phy.c selftest_reg.o selftest_sram.h
5800Makefile or_utils.c selftest_clk.c selftest_dma.o selftest_mdio.c selftest_phy.h selftest_serial.c selftest_sram.o
5801or_data_types.h or_utils.h selftest_clk.h selftest_dram.c selftest_mdio.h selftest_phy.o selftest_serial.h
5802[m]0;netfpga@node1-1: ~/netfpga/projects/selftest/swnetfpga@node1-1:~/netfpga/projects/selftest/sw$ cd [K[K[K../
5803-bash: ../: is a directory
5804]0;netfpga@node1-1: ~/netfpga/projects/selftest/swnetfpga@node1-1:~/netfpga/projects/selftest/sw$ cd ../
5805]0;netfpga@node1-1: ~/netfpga/projects/selftestnetfpga@node1-1:~/netfpga/projects/selftest$ ls
5806[0m[01;34minclude[0m [01;34mlib[0m Makefile [01;34msrc[0m [01;34msw[0m [01;34msynth[0m [01;34mverif[0m
5807[m]0;netfpga@node1-1: ~/netfpga/projects/selftestnetfpga@node1-1:~/netfpga/projects/selftest$ cd src/
5808]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$ ls
5809aurora_framing_aurora_lane.v aurora_framing_rx_ll.v ddr2_test_reg.v phy_test_pktsrc.v serial_test.v
5810aurora_framing_channel_error_detect.v aurora_framing_standard_cc_module.v ddr2_test.v phy_test_port_ctrl.v serial_tst_regs.v
5811aurora_framing_channel_init_sm.v aurora_framing_sym_dec.v dump.v phy_test_port_grp.v small_async_fifo.v
5812aurora_framing_chbond_count_dec.v aurora_framing_sym_gen.v lfsr32.v phy_test_reg.v sram_test_fast.v
5813aurora_framing_error_detect.v aurora_framing_tx_ll_control.v nf2_core.v phy_test_rx_log_reg.v sram_test_fixed_pat_fast.v
5814aurora_framing_frame_check.v aurora_framing_tx_ll_datapath.v nf2_mac_grp.v phy_test_rx_reg.v sram_test_fixed_pat.v
5815aurora_framing_frame_gen.v aurora_framing_tx_ll.v nf2_rxfifo_sm.v phy_test_tx_reg.v sram_test_rand_pat_fast.v
5816aurora_framing_global_logic.v aurora_framing.v nf2_sram_sm_fast.v phy_test.v sram_test_rand_pat.v
5817aurora_framing_idle_and_ver_gen.v aurora_module.v nf2_sram_sm.v reg_addr_reflect.v sram_test_reg.v
5818aurora_framing_lane_init_sm.v clk_test_reg.v nf2_top.v reg_file_test.v sram_test.v
5819aurora_framing_phase_align.v cpu_dma_queue.v nf2_txfifo_sm.v reg_sram_msb.v testbench_inc.v
5820aurora_framing_rx_ll_nfc.v dcmx3y0_2vp50.v phy_test_pktcmp.v rgmii_io.v unet_defines.v
5821aurora_framing_rx_ll_pdu_datapath.v ddr2_dram_access_reg.v phy_test_pktgen.v selftest_result.v
5822]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$ vi [K[K[Kless phy_test_pktgen.v
5823[?1049h[?1h=
5824///////////////////////////////////////////////////////////////////////////////
5825// vim:set shiftwidth=3 softtabstop=3 expandtab:
5826// $Id: phy_test_pktgen.v 1794 2007-05-21 01:38:29Z grg $
5827//
5828// Module: phy_test_pktgen.v
5829// Project: NetFPGA
5830// Description: Selftest module for Ethernet Phys.
5831//
5832// This particular module is responsible for generating packets
5833// only. The packet format is as follows:
5834//
5835// DA: 00:ca:fe:00:01:Port
5836// SA: 00:ca:fe:00:00:Port
5837// Length: Length
5838// Data: 8'b0, pattern (8 bits)
5839// seq_no (or 0)
5840// Pattern
5841//
5842// Note: data is muxed -- not the direct output for a flop
5843//
5844///////////////////////////////////////////////////////////////////////////////
5845
5846module phy_test_pktgen #(parameter
5847 CPCI_NF2_DATA_WIDTH = 32,
5848 NUM_PATTERNS = 5,
5849 SEQ_NO_WIDTH = 32
5850 )
5851 (
5852 output [31:0] data,
5853 output reg [3:0] ctrl,
5854 input rd_en, // Output the next word
5855
5856 input [2:0] port,