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, 13 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, // Source port number
5857 input [NUM_PATTERNS - 1:0] pattern, // Pattern enable
5858 input [10:0] pkt_size, // Packet size
5859 input [SEQ_NO_WIDTH - 1:0] seq_no, // Initial sequence number
5860
5861 output reg busy, // Currently transmitting packets
5862 output reg done, // Indicates the last word of the packet is being output
5863
5864 //--- misc
5865 input reset,
5866 input clk
5867[7mphy_test_pktgen.v [27m[K
5868[K [KESCESC[KOO[KBB
5869[K );
5870:[K
5871[K [KESCESC[KOO[KBB
5872[K
5873:[K
5874[K [KESCESC[KOO[KBB
5875[K // Identify different patters
5876:[K
5877[K [KESCESC[KOO[KBB
5878[K localparam ALL_0_PATTERN = 5'b00001;
5879:[K
5880[K [KESCESC[KOO[KBB
5881[K localparam ALL_1_PATTERN = 5'b00010;
5882:[K
5883[K [KESCESC[KOO[KBB
5884[K localparam ALT_01_PATTERN = 5'b00100;
5885:[K
5886[K [KESCESC[KOO[KBB
5887[K localparam ALT_10_PATTERN = 5'b01000;
5888:[K
5889[K [KESCESC[KOO[KBB
5890[K localparam RANDOM_PATTERN = 5'b10000;
5891:[K
5892[K [KESCESC[KOO[KBB
5893[K
5894:[K
5895[K [KESCESC[KOO[KBB
5896[K // Count when the LFSR should be enabled
5897:[K
5898[K [KESCESC[KOO[KBB
5899[K localparam START_LFSR = 'd5;
5900:[K
5901[K [KESCESC[KOO[KBB
5902[K
5903:[K
5904[K [KESCESC[KOO[KBB
5905[K // Word locations of various packet components
5906:[K
5907[K [KESCESC[KOO[KBB
5908[K localparam DA_HI = 'd0;
5909:[K
5910[K [KESCESC[KOO[KBB
5911[K localparam DA_LO_SA_HI = 'd1;
5912:[K
5913[K [KESCESC[KOO[KBB
5914[K localparam SA_LO = 'd2;
5915:[K
5916[K [KESCESC[KOO[KBB
5917[K localparam SIZE_PATTERN = 'd3;
5918:[K
5919[K [KESCESC[KOO[KBB
5920[K localparam SEQUENCE_NO = 'd4;
5921:[K
5922[K [KESCESC[KOO[KBB
5923[K
5924:[K
5925[K [KESCESC[KOO[KBB
5926[K // Packet length related variables
5927:[K
5928[K [KESCESC[KOO[KBB
5929[K reg [8:0] num_words;
5930:[K
5931[K [KESCESC[KOO[KBB
5932[K reg [3:0] final_ctrl;
5933:[K
5934[K [KESCESC[KOO[KBB
5935[K
5936:[K
5937[K [KESCESC[KOO[KBB
5938[K reg [8:0] count;
5939:[K
5940[K [KESCESC[KOO[KBB
5941[K
5942:[K
5943[K [KESCESC[KOO[KBB
5944[K wire [31:0] rand_data;
5945:[K
5946[K [KESCESC[KOO[KBB
5947[K reg [31:0] header_nxt;
5948:[K
5949[K [KESCESC[KOO[KBB
5950[K reg [31:0] payload;
5951:[K
5952[K [KESCESC[KOO[KBB
5953[K reg [31:0] header;
5954:[K
5955[K [KESCESC[KOO[KBB
5956[K
5957:[K
5958[K [KESCESC[KOO[KBB
5959[K reg done_nxt;
5960:[K
5961[K [KESCESC[KOO[KBB
5962[K wire last_word;
5963:[K
5964[K [KESCESC[KOO[KBB
5965[K
5966:[K
5967[K [KESCESC[KOO[KBB
5968[K reg enable_lfsr;
5969:[K
5970[K [KESCESC[KOO[KBB
5971[K
5972:[K
5973[K [KESCESC[KOO[KBB
5974[K reg sel_payload;
5975:[K
5976[K [KESCESC[KOO[KBB
5977[K
5978:[K
5979[K [KESCESC[KOO[KBB
5980[K
5981:[K
5982[K [KESCESC[KOO[KBB
5983[K
5984:[K
5985[K [KESCESC[KOO[KBB
5986[K // =================================
5987:[K
5988[K [KESCESC[KOO[KBB
5989[K // Main state machine responsible for packet transmission
5990:[K
5991[K [KESCESC[KOO[KBB
5992[K // Tracks the current word and places data on the output signals
5993:[K
5994[K [KESCESC[KOO[KBB
5995[K
5996:[K
5997[K [KESCESC[KOO[KBB
5998[K // Generate the last word signal
5999:[K
6000[K [KESCESC[KOO[KBB
6001[K assign last_word = count == num_words - 1;
6002:[K
6003[K [KESCESC[KOO[KBB
6004[K
6005:[K
6006[K [KESCESC[KOO[KBB
6007[K always @(posedge clk)
6008:[K
6009[K [KESCESC[KOO[KBB
6010[K begin
6011:[K
6012[K [KESCESC[KOO[KBB
6013[K // Track the count and calculate the data to send
6014:[K
6015[K [KESCESC[KOO[KBB
6016[K if (reset) begin
6017:[K
6018[K [KESCESC[KOO[KBB
6019[K count <= 'h0;
6020:[K
6021[K [KESCESC[KOO[KBB
6022[K enable_lfsr <= 1'b0;
6023:[K
6024[K [KESCESC[KOO[KBB
6025[K final_ctrl <= 4'b0000;
6026:[K
6027[K [KESCESC[KOO[KBB
6028[K num_words <= {9{1'b1}};
6029:[K
6030[K [KESCESC[KOO[KBB
6031[K ctrl <= 'h0;
6032:[K
6033[K [KESCESC[KOO[KBB
6034[K done <= 1'b0;
6035:[K
6036[K [KESCESC[KOO[KBB
6037[K busy <= 1'b0;
6038:[K
6039[K [KESCESC[KOO[KBB
6040[K sel_payload <= 1'b0;
6041:[K
6042[K [KESCESC[KOO[KBB
6043[K header <= 'h0;
6044:[K
6045[K [KESCESC[KOO[KBB
6046[K end
6047:[K
6048[K [KESCESC[KOO[KBB
6049[K else if (rd_en) begin
6050:[K
6051[K [KESCESC[KOO[KBB
6052[K if (last_word) begin
6053:[K
6054[K [KESCESC[KOO[KBB
6055[K // If we are on the last word we should reset the
6056:[K
6057[K [KESCESC[KOO[KBB
6058[K // counter and move to the next pattern
6059:[K
6060[K [KESCESC[KOO[KBB
6061[K //
6062:[K
6063[K [KESCESC[KOO[KBB
6064[K // Don't reset the LFSR here as the output may not
6065:[K
6066[K [KESCESC[KOO[KBB
6067[K // have been processed yet
6068:[K
6069[K [KESCESC[KOO[KBB
6070[K count <= 'h0;
6071:[K
6072[K [KESCESC[KOO[KBB
6073[K final_ctrl <= 4'b0000;
6074:[K
6075[K [KESCESC[KOO[KBB
6076[K num_words <= {9{1'b1}};
6077:[K
6078[K [KESCESC[KOO[KBB
6079[K ctrl <= final_ctrl;
6080:[K
6081[K [KESCESC[KOO[KBB
6082[K done <= 1'b1;
6083:[K
6084[K [KESCESC[KOO[KBB
6085[K sel_payload <= 1'b1;
6086:[K
6087[K [KESCESC[KOO[KBB
6088[K header <= header_nxt;
6089:[K
6090[K [KESCESC[KOO[KBB
6091[K end
6092:[K
6093[K [KESCESC[KOO[KBB
6094[K else begin
6095:[K
6096[K [KESCESC[KOO[KBB
6097[K // Record the size and pattern if we're
6098:[K
6099[K [KESCESC[KOO[KBB
6100[K // on the appropriate word
6101:[K
6102[K [KESCESC[KOO[KBB
6103[K if (count == SIZE_PATTERN) begin
6104:[K
6105[K [KESCESC[KOO[KBB
6106[K // Work out how many words we expect to send
6107:[K
6108[K [KESCESC[KOO[KBB
6109[K num_words <= pkt_size[10:2] + (|pkt_size[1:0]);
6110:[K
6111[K [KESCESC[KOO[KBB
6112[K
6113:[K
6114[K [KESCESC[KOO[KBB
6115[K // Calculate the control bits for the final word
6116:[K
6117[K [KESCESC[KOO[KBB
6118[K case (pkt_size[1:0])
6119:[K
6120[K [KESCESC[KOO[KBB
6121[K 2'd0 : final_ctrl <= 4'b0001;
6122:[K
6123[K [KESCESC[KOO[KBB
6124[K 2'd1 : final_ctrl <= 4'b1000;
6125:[K
6126[K [KESCESC[KOO[KBB
6127[K 2'd2 : final_ctrl <= 4'b0100;
6128:[K
6129[K [KESCESC[KOO[KBB
6130[K 2'd3 : final_ctrl <= 4'b0010;
6131:[K
6132[K [KESCESC[KOO[KBB
6133[K endcase
6134:[K
6135[K [KESCESC[KOO[KBB
6136[K end
6137:[K
6138[K [KESCESC[KOO[KBB
6139[K
6140:[K
6141[K [KESCESC[KOO[KBB
6142[K // Enable the LFSR if appropriate
6143:[K
6144[K [KESCESC[KOO[KBB
6145[K if (count == START_LFSR)
6146:[K
6147[K [KESCESC[KOO[KBB
6148[K enable_lfsr <= 1'b1;
6149:[K
6150[K [KESCESC[KOO[KBB
6151[K else if (count == 'h0)
6152:[K
6153[K [KESCESC[KOO[KBB
6154[K enable_lfsr <= 1'b0;
6155:[K
6156[K [KESCESC[KOO[KBB
6157[K
6158:[K
6159[K [KESCESC[KOO[KBB
6160[K // If we are not on the last word then we should increment the
6161:[K
6162[K [KESCESC[KOO[KBB
6163[K // counter but don't touch the pattern
6164:[K
6165[K [KESCESC[KOO[KBB
6166[K count <= count + 'h1;
6167:[K
6168[K [KESCESC[KOO[KBB
6169[K header <= header_nxt;
6170:[K
6171[K [KESCESC[KOO[KBB
6172[K ctrl <= 'h0;
6173:[K
6174[K [KESCESC[KOO[KBB
6175[K done <= 1'b0;
6176:[K
6177[K [KESCESC[KOO[KBB
6178[K if (count == 'h0)
6179:[K
6180[K [KESCESC[KOO[KBB
6181[K sel_payload <= 1'b0;
6182:[K
6183[K [KESCESC[KOO[KBB
6184[K else if (count == SEQUENCE_NO)
6185:[K
6186[K [KESCESC[KOO[KBB
6187[K sel_payload <= 1'b1;
6188:[K
6189[K [KESCESC[KOO[KBB
6190[K end
6191:[K
6192[K [KESCESC[KOO[KBB
6193[K busy <= 1'b1;
6194:[K
6195[K [KESCESC[KOO[KBB
6196[K end
6197:[K
6198[K [KESCESC[KOO[KBB
6199[K else if (count == 'h0)
6200:[K
6201[K [KESCESC[KOO[KBB
6202[K busy <= 1'b0;
6203:[K
6204[K [KESCESC[KOO[KBB
6205[K end
6206:[K
6207[K [KESCESC[KOO[KBB
6208[K
6209:[K
6210[K [KESCESC[KOO[KBB
6211[K assign data = sel_payload ? payload : header;
6212:[K
6213[K [KESCESC[KOO[KBB
6214[K
6215:[K
6216[K [KESCESC[KOO[KBB
6217[K
6218:[K
6219[K [KESCESC[KOO[KBB
6220[K
6221:[K
6222[K [KESCESC[KOO[KBB
6223[K // =================================
6224:[K
6225[K [KESCESC[KOO[KBB
6226[K // Muxes to work out what data to transmit
6227:[K
6228[K [KESCESC[KOO[KBB
6229[K
6230:[K
6231[K [KESCESC[KOO[KBB
6232[K always @*
6233:[K
6234[K [KESCESC[KOO[KBB
6235[K begin
6236:[K
6237[K [KESCESC[KOO[KBB
6238[K case (count)
6239:[K
6240[K [KESCESC[KOO[KBB
6241[K //DA_HI : header_nxt = 32'h 00_ca_fe_00;
6242:[K
6243[K [KESCESC[KOO[KBB
6244[K DA_LO_SA_HI : header_nxt = {8'h 01, 5'd0, port, 16'h 00_ca};
6245:[K
6246[K [KESCESC[KOO[KBB
6247[K SA_LO : header_nxt = {24'h fe_00_00, 5'd0, port};
6248:[K
6249[K [KESCESC[KOO[KBB
6250[K SIZE_PATTERN: header_nxt = {4'hf, 1'b0, pkt_size, 8'd0, {(8 - NUM_PATTERNS){1'b0}}, pattern};
6251:[K
6252[K [KESCESC[KOO[KBB
6253[K default : header_nxt = 32'h 00_ca_fe_00;
6254:[K
6255[K [KESCESC[KOO[KBB
6256[K endcase
6257:[K
6258[K [KESCESC[KOO[KBB
6259[K end
6260:[K
6261[K [KESCESC[KOO[KBB
6262[K
6263:[K
6264[K [KESCESC[KOO[KBB
6265[K always @*
6266:[K
6267[K [KESCESC[KOO[KBB
6268[K begin
6269:[K
6270[K [KESCESC[KOO[KBB
6271[K case (pattern)
6272:[K
6273[K [KESCESC[KOO[KBB
6274[K ALL_0_PATTERN : payload = 32'h 00000000;
6275:[K
6276[K [KESCESC[KOO[KBB
6277[K ALL_1_PATTERN : payload = 32'h ffffffff;
6278:[K
6279[K [KESCESC[KOO[KBB
6280[K ALT_01_PATTERN : payload = 32'h 55555555;
6281:[K
6282[K [KESCESC[KOO[KBB
6283[K ALT_10_PATTERN : payload = 32'h aaaaaaaa;
6284:[K
6285[K [KESCESC[KOO[KBB
6286[K default : payload = rand_data;
6287:[K
6288[K [KESCESC[KOO[KBB
6289[K endcase
6290:[K
6291[K [KESCESC[KOO[KBB
6292[K end
6293:[K
6294[K [KESCESC[KOO[KBB
6295[K
6296:[K
6297[K [KESCESC[KOO[KBB
6298[K
6299:[K
6300[K [KESCESC[KOO[KBB
6301[K
6302:[K
6303[K [KESCESC[KOO[KBB
6304[K // =================================
6305:[K
6306[K [KESCESC[KOO[KBB
6307[K // LFSR to generate random patterns
6308:[K
6309[K [KESCESC[KOO[KBB
6310[K //
6311:[K
6312[K [KESCESC[KOO[KBB
6313[K // The LFSR should only progress when we are generating a random pattern at
6314:[K
6315[K [KESCESC[KOO[KBB
6316[K // only when we are in the payload section.
6317:[K
6318[K [KESCESC[KOO[KBB
6319[K //
6320:[K
6321[K [KESCESC[KOO[KBB
6322[K // The first word should actually be repeated twice in the payload to allow
6323:[K
6324[K [KESCESC[KOO[KBB
6325[K // the receiver to start an identical LFSR
6326:[K
6327[K [KESCESC[KOO[KBB
6328[K lfsr32 patgen (
6329:[K
6330[K [KESCESC[KOO[KBB
6331[K .val (rand_data),
6332:[K
6333[K [KESCESC[KOO[KBB
6334[K .rd (pattern == RANDOM_PATTERN && rd_en && enable_lfsr),
6335:[K
6336[K [KESCESC[KOO[KBB
6337[K .seed (seq_no),
6338:[K
6339[K [KESCESC[KOO[KBB
6340[K .reset (reset || !enable_lfsr),
6341:[K
6342[K [KESCESC[KOO[KBB
6343[K .clk (clk)
6344:[K
6345[K [KESCESC[KOO[KBB
6346[K );
6347:[K
6348[K [KESCESC[KOO[KBB
6349[K
6350:[K
6351[K [KESCESC[KOO[KBB
6352[Kendmodule // phy_test_pktgen
6353[7m(END) [27m[K
6354[K [KESCESC[KOO[KBB
6355[K
6356[K[7m(END) [27m[K
6357[K [KESCESC[KOO[KBB
6358[K
6359[K[7m(END) [27m[K
6360[K [KESCESC[KOO[KBB
6361[K
6362[K[7m(END) [27m[K
6363[K [KESCESC[KOO[KBB
6364[K
6365[K[7m(END) [27m[K
6366[K [KESCESC[KOO[KBB
6367[K
6368[K[7m(END) [27m[K
6369[K [KESCESC[KOO[KBB
6370[K
6371[K[7m(END) [27m[K
6372[K [KESCESC[KOO[KBB
6373[K
6374[K[7m(END) [27m[K
6375[K [KESCESC[KOO[KAA
6376[K[HM // =================================
6377[44;1H
6378[K:[K
6379[K [KESCESC[KOO[KAA
6380[K[HM
6381[44;1H
6382[K:[K
6383[K [KESCESC[KOO[KAA
6384[K[HM
6385[44;1H
6386[K:[K
6387[K [KESCESC[KOO[KAA
6388[K[HM
6389[44;1H
6390[K:[K
6391[K [KESCESC[KOO[KAA
6392[K[HM assign data = sel_payload ? payload : header;
6393[44;1H
6394[K:[K
6395[K [KESCESC[KOO[KAA
6396[K[HM
6397[44;1H
6398[K:[K
6399[K [KESCESC[KOO[KAA
6400[K[HM end
6401[44;1H
6402[K:[K
6403[K [KESCESC[KOO[KAA
6404[K[HM busy <= 1'b0;
6405[44;1H
6406[K:[K
6407[K [KESCESC[KOO[KAA
6408[K[HM else if (count == 'h0)
6409[44;1H
6410[K:[K
6411[K [KESCESC[KOO[KAA
6412[K[HM end
6413[44;1H
6414[K:[K
6415[K [KESCESC[KOO[KAA
6416[K[HM busy <= 1'b1;
6417[44;1H
6418[K:[K
6419[K [KESCESC[KOO[KAA
6420[K[HM end
6421[44;1H
6422[K:[K
6423[K [KESCESC[KOO[KAA
6424[K[HM sel_payload <= 1'b1;
6425[44;1H
6426[K:[K
6427[K [KESCESC[KOO[KAA
6428[K[HM else if (count == SEQUENCE_NO)
6429[44;1H
6430[K:[K
6431[K [KESCESC[KOO[KAA
6432[K[HM sel_payload <= 1'b0;
6433[44;1H
6434[K:[K
6435[K [KESCESC[KOO[KAA
6436[K[HM if (count == 'h0)
6437[44;1H
6438[K:[K
6439[K [KESCESC[KOO[KAA
6440[K[HM done <= 1'b0;
6441[44;1H
6442[K:[K
6443[K [KESCESC[KOO[KAA
6444[K[HM ctrl <= 'h0;
6445[44;1H
6446[K:[K
6447[K [KESCESC[KOO[KAA
6448[K[HM header <= header_nxt;
6449[44;1H
6450[K:[K
6451[K [KESCESC[KOO[KAA
6452[K[HM count <= count + 'h1;
6453[44;1H
6454[K:[K
6455[K [KESCESC[KOO[KAA
6456[K[HM // counter but don't touch the pattern
6457[44;1H
6458[K:[K
6459[K [KESCESC[KOO[KAA
6460[K[HM // If we are not on the last word then we should increment the
6461[44;1H
6462[K:[K
6463[K [KESCESC[KOO[KAA
6464[K[HM
6465[44;1H
6466[K:[K
6467[K [KESCESC[KOO[KAA
6468[K[HM enable_lfsr <= 1'b0;
6469[44;1H
6470[K:[K
6471[K [KESCESC[KOO[KAA
6472[K[HM else if (count == 'h0)
6473[44;1H
6474[K:[K
6475[K [KESCESC[KOO[KAA
6476[K[HM enable_lfsr <= 1'b1;
6477[44;1H
6478[K:[K
6479[K [KESCESC[KOO[KAA
6480[K[HM if (count == START_LFSR)
6481[44;1H
6482[K:[K
6483[K [KESCESC[KOO[KAA
6484[K[HM // Enable the LFSR if appropriate
6485[44;1H
6486[K:[K
6487[K [KESCESC[KOO[KAA
6488[K[HM
6489[44;1H
6490[K:[K
6491[K [KESCESC[KOO[KAA
6492[K[HM end
6493[44;1H
6494[K:[K
6495[K [KESCESC[KOO[KAA
6496[K[HM endcase
6497[44;1H
6498[K:[K
6499[K [KESCESC[KOO[KAA
6500[K[HM 2'd3 : final_ctrl <= 4'b0010;
6501[44;1H
6502[K:[K
6503[K [KESCESC[KOO[KAA
6504[K[HM 2'd2 : final_ctrl <= 4'b0100;
6505[44;1H
6506[K:[K
6507[K [KESCESC[KOO[KAA
6508[K[HM 2'd1 : final_ctrl <= 4'b1000;
6509[44;1H
6510[K:[K
6511[K [KESCESC[KOO[KAA
6512[K[HM 2'd0 : final_ctrl <= 4'b0001;
6513[44;1H
6514[K:[K
6515[K [KESCESC[KOO[KAA
6516[K[HM case (pkt_size[1:0])
6517[44;1H
6518[K:[K
6519[K [KESCESC[KOO[KAA
6520[K[HM // Calculate the control bits for the final word
6521[44;1H
6522[K:[K
6523[K [KESCESC[KOO[KAA
6524[K[HM
6525[44;1H
6526[K:[K
6527[K [KESCESC[KOO[KAA
6528[K[HM num_words <= pkt_size[10:2] + (|pkt_size[1:0]);
6529[44;1H
6530[K:[K
6531[K [KESCESC[KOO[KAA
6532[K[HM // Work out how many words we expect to send
6533[44;1H
6534[K:[K
6535[K [KESCESC[KOO[KAA
6536[K[HM if (count == SIZE_PATTERN) begin
6537[44;1H
6538[K:[K
6539[K [KESCESC[KOO[KAA
6540[K[HM // on the appropriate word
6541[44;1H
6542[K:[K
6543[K [KESCESC[KOO[KAA
6544[K[HM // Record the size and pattern if we're
6545[44;1H
6546[K:[K
6547[K [KESCESC[KOO[KAA
6548[K[HM else begin
6549[44;1H
6550[K:[K
6551[K [KESCESC[KOO[KAA
6552[K[HM end
6553[44;1H
6554[K:[K
6555[K [KESCESC[KOO[KAA
6556[K[HM header <= header_nxt;
6557[44;1H
6558[K:[K
6559[K [KESCESC[KOO[KAA
6560[K[HM sel_payload <= 1'b1;
6561[44;1H
6562[K:[K
6563[K [KESCESC[KOO[KAA
6564[K[HM done <= 1'b1;
6565[44;1H
6566[K:[K
6567[K [KESCESC[KOO[KAA
6568[K[HM ctrl <= final_ctrl;
6569[44;1H
6570[K:[K
6571[K [KESCESC[KOO[KAA
6572[K[HM num_words <= {9{1'b1}};
6573[44;1H
6574[K:[K
6575[K [KESCESC[KOO[KAA
6576[K[HM final_ctrl <= 4'b0000;
6577[44;1H
6578[K:[K
6579[K [KESCESC[KOO[KAA
6580[K[HM count <= 'h0;
6581[44;1H
6582[K:[K
6583[K [KESCESC[KOO[KAA
6584[K[HM // have been processed yet
6585[44;1H
6586[K:[K
6587[K [KESCESC[KOO[KAA
6588[K[HM // Don't reset the LFSR here as the output may not
6589[44;1H
6590[K:[K
6591[K [KESCESC[KOO[KAA
6592[K[HM //
6593[44;1H
6594[K:[K
6595[K [KESCESC[KOO[KAA
6596[K[HM // counter and move to the next pattern
6597[44;1H
6598[K:[K
6599[K [KESCESC[KOO[KAA
6600[K[HM // If we are on the last word we should reset the
6601[44;1H
6602[K:[K
6603[K [KESCESC[KOO[KAA
6604[K[HM if (last_word) begin
6605[44;1H
6606[K:[K
6607[K [KESCESC[KOO[KAA
6608[K[HM else if (rd_en) begin
6609[44;1H
6610[K:[K
6611[K [KESCESC[KOO[KAA
6612[K[HM end
6613[44;1H
6614[K:[K
6615[K [KESCESC[KOO[KAA
6616[K[HM header <= 'h0;
6617[44;1H
6618[K:[K
6619[K [KESCESC[KOO[KAA
6620[K[HM sel_payload <= 1'b0;
6621[44;1H
6622[K:[K
6623[K [KESCESC[KOO[KAA
6624[K[HM busy <= 1'b0;
6625[44;1H
6626[K:[K
6627[K [KESCESC[KOO[KAA
6628[K[HM done <= 1'b0;
6629[44;1H
6630[K:[K
6631[K [KESCESC[KOO[KAA
6632[K[HM ctrl <= 'h0;
6633[44;1H
6634[K:[K
6635[K [KESCESC[KOO[KAA
6636[K[HM num_words <= {9{1'b1}};
6637[44;1H
6638[K:[K
6639[K [KESCESC[KOO[KAA
6640[K[HM final_ctrl <= 4'b0000;
6641[44;1H
6642[K:[K
6643[K [KESCESC[KOO[KAA
6644[K[HM enable_lfsr <= 1'b0;
6645[44;1H
6646[K:[K
6647[K [KESCESC[KOO[KAA
6648[K[HM count <= 'h0;
6649[44;1H
6650[K:[K
6651[K [KESCESC[KOO[KAA
6652[K[HM if (reset) begin
6653[44;1H
6654[K:[K
6655[K [KESCESC[KOO[KAA
6656[K[HM // Track the count and calculate the data to send
6657[44;1H
6658[K:[K
6659[K [KESCESC[KOO[KAA
6660[K[HM begin
6661[44;1H
6662[K:[K
6663[K [KESCESC[KOO[KAA
6664[K[HM always @(posedge clk)
6665[44;1H
6666[K:[K
6667[K [KESCESC[KOO[KAA
6668[K[HM
6669[44;1H
6670[K:[K
6671[K [KESCESC[KOO[KAA
6672[K[HM assign last_word = count == num_words - 1;
6673[44;1H
6674[K:[K
6675[K [KESCESC[KOO[KAA
6676[K[HM // Generate the last word signal
6677[44;1H
6678[K:[K
6679[K [KESCESC[KOO[KAA
6680[K[HM
6681[44;1H
6682[K:[K
6683[K [KESCESC[KOO[KAA
6684[K[HM // Tracks the current word and places data on the output signals
6685[44;1H
6686[K:[K
6687[K [KESCESC[KOO[KAA
6688[K[HM // Main state machine responsible for packet transmission
6689[44;1H
6690[K:[K
6691[K [KESCESC[KOO[KAA
6692[K[HM // =================================
6693[44;1H
6694[K:[K
6695[K [KESCESC[KOO[KAA
6696[K[HM
6697[44;1H
6698[K:[K
6699[K [KESCESC[KOO[KAA
6700[K[HM
6701[44;1H
6702[K:[K
6703[K [KESCESC[KOO[KAA
6704[K[HM
6705[44;1H
6706[K:[K
6707[K [KESCESC[KOO[KAA
6708[K[HM reg sel_payload;
6709[44;1H
6710[K:[K
6711[K [KESCESC[KOO[KAA
6712[K[HM
6713[44;1H
6714[K:[K
6715[K [KESCESC[KOO[KAA
6716[K[HM reg enable_lfsr;
6717[44;1H
6718[K:[K
6719[K [KESCESC[KOO[KAA
6720[K[HM
6721[44;1H
6722[K:[K
6723[K [KESCESC[KOO[KAA
6724[K[HM wire last_word;
6725[44;1H
6726[K:[K
6727[K [KESCESC[KOO[KAA
6728[K[HM reg done_nxt;
6729[44;1H
6730[K:[K
6731[K [KESCESC[KOO[KAA
6732[K[HM
6733[44;1H
6734[K:[K
6735[K [KESCESC[KOO[KAA
6736[K[HM reg [31:0] header;
6737[44;1H
6738[K:[K
6739[K [KESCESC[KOO[KAA
6740[K[HM reg [31:0] payload;
6741[44;1H
6742[K:[K
6743[K [KESCESC[KOO[KAA
6744[K[HM reg [31:0] header_nxt;
6745[44;1H
6746[K:[K
6747[K [KESCESC[KOO[KAA
6748[K[HM wire [31:0] rand_data;
6749[44;1H
6750[K:[K
6751[K [KESCESC[KOO[KAA
6752[K[HM
6753[44;1H
6754[K:[K
6755[K [KESCESC[KOO[KAA
6756[K[HM reg [8:0] count;
6757[44;1H
6758[K:[K
6759[K [KESCESC[KOO[KAA
6760[K[HM
6761[44;1H
6762[K:[K
6763[K [KESCESC[KOO[KAA
6764[K[HM reg [3:0] final_ctrl;
6765[44;1H
6766[K:[K
6767[K [KESCESC[KOO[KAA
6768[K[HM reg [8:0] num_words;
6769[44;1H
6770[K:[K
6771[K [KESCESC[KOO[KAA
6772[K[HM // Packet length related variables
6773[44;1H
6774[K:[K
6775[K [KESCESC[KOO[KAA
6776[K[HM
6777[44;1H
6778[K:[K
6779[K [KESCESC[KOO[KAA
6780[K[HM localparam SEQUENCE_NO = 'd4;
6781[44;1H
6782[K:[K
6783[K [KESCESC[KOO[KAA
6784[K[HM localparam SIZE_PATTERN = 'd3;
6785[44;1H
6786[K:[K
6787[K [KESCESC[KOO[KAA
6788[K[HM localparam SA_LO = 'd2;
6789[44;1H
6790[K:[K
6791[K [KESCESC[KOO[KAA
6792[K[HM localparam DA_LO_SA_HI = 'd1;
6793[44;1H
6794[K:[K
6795[K [KESCESC[KOO[KAA
6796[K[HM localparam DA_HI = 'd0;
6797[44;1H
6798[K:[K
6799[K [KESCESC[KOO[KAA
6800[K[HM // Word locations of various packet components
6801[44;1H
6802[K:[K
6803[K [KESCESC[KOO[KAA
6804[K[HM
6805[44;1H
6806[K:[K
6807[K [KESCESC[KOO[KAA
6808[K[HM localparam START_LFSR = 'd5;
6809[44;1H
6810[K:[K
6811[K [KESCESC[KOO[KAA
6812[K[HM // Count when the LFSR should be enabled
6813[44;1H
6814[K:[K
6815[K [KESCESC[KOO[KAA
6816[K[HM
6817[44;1H
6818[K:[K
6819[K [KESCESC[KOO[KAA
6820[K[HM localparam RANDOM_PATTERN = 5'b10000;
6821[44;1H
6822[K:[K
6823[K [KESCESC[KOO[KAA
6824[K[HM localparam ALT_10_PATTERN = 5'b01000;
6825[44;1H
6826[K:[K
6827[K [KESCESC[KOO[KAA
6828[K[HM localparam ALT_01_PATTERN = 5'b00100;
6829[44;1H
6830[K:[K
6831[K [KESCESC[KOO[KAA
6832[K[HM localparam ALL_1_PATTERN = 5'b00010;
6833[44;1H
6834[K:[K
6835[K [KESCESC[KOO[KAA
6836[K[HM localparam ALL_0_PATTERN = 5'b00001;
6837[44;1H
6838[K:[K
6839[K [KESCESC[KOO[KAA
6840[K[HM // Identify different patters
6841[44;1H
6842[K:[K
6843[K [KESCESC[KOO[KAA
6844[K[HM
6845[44;1H
6846[K:[K
6847[K [KESCESC[KOO[KAA
6848[K[HM );
6849[44;1H
6850[K:[K
6851[K [KESCESC[KOO[KAA
6852[K[HM input clk
6853[44;1H
6854[K:[K
6855[K [KESCESC[KOO[KAA
6856[K[HM input reset,
6857[44;1H
6858[K:[K
6859[K [KESCESC[KOO[KAA
6860[K[HM //--- misc
6861[44;1H
6862[K:[K
6863[K [KESCESC[KOO[KAA
6864[K[HM
6865[44;1H
6866[K:[K
6867[K [KESCESC[KOO[KAA
6868[K[HM output reg done, // Indicates the last word of the packet is being output
6869[44;1H
6870[K:[K
6871[K [KESCESC[KOO[KAA
6872[K[HM output reg busy, // Currently transmitting packets
6873[44;1H
6874[K:[K
6875[K [KESCESC[KOO[KAA
6876[K[HM
6877[44;1H
6878[K:[K
6879[K [KESCESC[KOO[KAA
6880[K[HM input [SEQ_NO_WIDTH - 1:0] seq_no, // Initial sequence number
6881[44;1H
6882[K:[K
6883[K [KESCESC[KOO[KAA
6884[K[HM input [10:0] pkt_size, // Packet size
6885[44;1H
6886[K:[K
6887[K [KESCESC[KOO[KAA
6888[K[HM input [NUM_PATTERNS - 1:0] pattern, // Pattern enable
6889[44;1H
6890[K:[K
6891[K [KESCESC[KOO[KAA
6892[K[HM input [2:0] port, // Source port number
6893[44;1H
6894[K:[K
6895[K [KESCESC[KOO[KAA
6896[K[HM
6897[44;1H
6898[K:[K
6899[K [KESCESC[KOO[KAA
6900[K[HM input rd_en, // Output the next word
6901[44;1H
6902[K:[K
6903[K [KESCESC[KOO[KAA
6904[K[HM output reg [3:0] ctrl,
6905[44;1H
6906[K:[K
6907[K [KESCESC[KOO[KAA
6908[K[HM output [31:0] data,
6909[44;1H
6910[K:[K
6911[K [KESCESC[KOO[KAA
6912[K[HM (
6913[44;1H
6914[K:[K
6915[K [KESCESC[KOO[KAA
6916[K[HM )
6917[44;1H
6918[K:[K
6919[K [KESCESC[KOO[KAA
6920[K[HM SEQ_NO_WIDTH = 32
6921[44;1H
6922[K:[K
6923[K [KESCESC[KOO[KAA
6924[K[HM NUM_PATTERNS = 5,
6925[44;1H
6926[K:[K
6927[K [KESCESC[KOO[KAA
6928[K[HM CPCI_NF2_DATA_WIDTH = 32,
6929[44;1H
6930[K:[K
6931[K [KESCESC[KOO[KAA
6932[K[HMmodule phy_test_pktgen #(parameter
6933[44;1H
6934[K:[K
6935[K [KESCESC[KOO[KAA
6936[K[HM
6937[44;1H
6938[K:[K
6939[K [KESCESC[KOO[KAA
6940[K[HM///////////////////////////////////////////////////////////////////////////////
6941[44;1H
6942[K:[K
6943[K [KESCESC[KOO[KAA
6944[K[HM//
6945[44;1H
6946[K:[K
6947[K [KESCESC[KOO[KAA
6948[K[HM// Note: data is muxed -- not the direct output for a flop
6949[44;1H
6950[K:[K
6951[K [KESCESC[KOO[KAA
6952[K[HM//
6953[44;1H
6954[K:[K
6955[K [KESCESC[KOO[KAA
6956[K[HM// Pattern
6957[44;1H
6958[K:[K
6959[K [KESCESC[KOO[KAA
6960[K[HM// seq_no (or 0)
6961[44;1H
6962[K:[K
6963[K [KESCESC[KOO[KAA
6964[K[HM// Data: 8'b0, pattern (8 bits)
6965[44;1H
6966[K:[K
6967[K [KESCESC[KOO[KAA
6968[K[HM// Length: Length
6969[44;1H
6970[K:[K
6971[K [KESCESC[KOO[KAA
6972[K[HM// SA: 00:ca:fe:00:00:Port
6973[44;1H
6974[K:[K
6975[K [KESCESC[KOO[KAA
6976[K[HM// DA: 00:ca:fe:00:01:Port
6977[44;1H
6978[K:[K
6979[K [KESCESC[KOO[KAA
6980[K[HM//
6981[44;1H
6982[K:[K
6983[K [KESCESC[KOO[KAA
6984[K[HM// only. The packet format is as follows:
6985[44;1H
6986[K:[K
6987[K [KESCESC[KOO[KAA
6988[K[HM// This particular module is responsible for generating packets
6989[44;1H
6990[K:[K
6991[K [KESCESC[KOO[KAA
6992[K[HM//
6993[44;1H
6994[K:[K
6995[K [KESCESC[KOO[KAA
6996[K[HM// Description: Selftest module for Ethernet Phys.
6997[44;1H
6998[K:[K
6999[K [KESCESC[KOO[KAA
7000[K[HM// Project: NetFPGA
7001[44;1H
7002[K:[K
7003[K [KESCESC[KOO[KAA
7004[K[HM// Module: phy_test_pktgen.v
7005[44;1H
7006[K:[K
7007[K [KESCESC[KOO[KAA
7008[K[HM//
7009[44;1H
7010[K:[K
7011[K [KESCESC[KOO[KAA
7012[K[HM// $Id: phy_test_pktgen.v 1794 2007-05-21 01:38:29Z grg $
7013[44;1H
7014[K:[K
7015[K [KESCESC[KOO[KAA
7016[K[HM// vim:set shiftwidth=3 softtabstop=3 expandtab:
7017[44;1H
7018[K:[K
7019[K [KESCESC[KOO[KAA
7020[K[HM///////////////////////////////////////////////////////////////////////////////
7021[44;1H
7022[K:[K
7023[K [KESCESC[KOO[KAA
7024[K
7025[K:[K
7026[K [KESCESC[KOO[KAA
7027[K
7028[K:[K
7029[K [KESCESC[KOO[KAA
7030[K
7031[K:[K
7032[K [KESCESC[KOO[KAA
7033[K
7034[K:[K
7035[K [KESCESC[KOO[KAA
7036[K
7037[K:[K
7038[K [KESCESC[KOO[KAA
7039[K
7040[K:[K
7041[K [KESCESC[KOO[KAA
7042[K
7043[K:[K
7044[K [KESCESC[KOO[KAA
7045[K
7046[K:[K
7047[K [KESCESC[KOO[KAA
7048[K
7049[K:[K
7050[K [KESCESC[KOO[KAA
7051[K
7052[K:[K
7053[K [KESCESC[KOO[KAA
7054[K
7055[K:[K
7056[K [KESCESC[KOO[KAA
7057[K
7058[K:[K
7059[K [KESCESC[KOO[KAA
7060[K
7061[K:[K
7062[K [KESCESC[KOO[KAA
7063[K
7064[K:[K
7065[K [KESCESC[KOO[KAA
7066[K
7067[K:[K
7068[K [KESCESC[KOO[KBB
7069[K );
7070:[K
7071[K [KESCESC[KOO[KBB
7072[K
7073:[K
7074[K [KESCESC[KOO[KBB
7075[K // Identify different patters
7076:[K
7077[K [KESCESC[KOO[KBB
7078[K localparam ALL_0_PATTERN = 5'b00001;
7079:[K
7080[K [KESCESC[KOO[KBB
7081[K localparam ALL_1_PATTERN = 5'b00010;
7082:[K
7083[K [KESCESC[KOO[KBB
7084[K localparam ALT_01_PATTERN = 5'b00100;
7085:[K
7086[K [KESCESC[KOO[KBB
7087[K localparam ALT_10_PATTERN = 5'b01000;
7088:[K
7089[K [KESCESC[KOO[KBB
7090[K localparam RANDOM_PATTERN = 5'b10000;
7091:[K
7092[K [KESCESC[KOO[KBB
7093[K
7094:[K
7095[K [KESCESC[KOO[KBB
7096[K // Count when the LFSR should be enabled
7097:[K
7098[K [KESCESC[KOO[KBB
7099[K localparam START_LFSR = 'd5;
7100:[K
7101[K [KESCESC[KOO[KBB
7102[K
7103:[K
7104[K [KESCESC[KOO[KBB
7105[K // Word locations of various packet components
7106:[K
7107[K [KESCESC[KOO[KBB
7108[K localparam DA_HI = 'd0;
7109:[K
7110[K [KESCESC[KOO[KBB
7111[K localparam DA_LO_SA_HI = 'd1;
7112:[K
7113[K [KESCESC[KOO[KBB
7114[K localparam SA_LO = 'd2;
7115:[K
7116[K [KESCESC[KOO[KBB
7117[K localparam SIZE_PATTERN = 'd3;
7118:[K
7119[K [KESCESC[KOO[KBB
7120[K localparam SEQUENCE_NO = 'd4;
7121:[K
7122[K [KESCESC[KOO[KBB
7123[K
7124:[K
7125[K [KESCESC[KOO[KBB
7126[K // Packet length related variables
7127:[K
7128[K [KESCESC[KOO[KBB
7129[K reg [8:0] num_words;
7130:[K
7131[K [KESCESC[KOO[KBB
7132[K reg [3:0] final_ctrl;
7133:[K
7134[K [KESCESC[KOO[KBB
7135[K
7136:[K
7137[K [KESCESC[KOO[KBB
7138[K reg [8:0] count;
7139:[K
7140[K [KESCESC[KOO[KBB
7141[K
7142:[K
7143[K [KESCESC[KOO[KBB
7144[K wire [31:0] rand_data;
7145:[K
7146[K [KESCESC[KOO[KBB
7147[K reg [31:0] header_nxt;
7148:[K
7149[K [KESCESC[KOO[KBB
7150[K reg [31:0] payload;
7151:[K
7152[K [KESCESC[KOO[KBB
7153[K reg [31:0] header;
7154:[K
7155[K [KESCESC[KOO[KBB
7156[K
7157:[K
7158[K [KESCESC[KOO[KBB
7159[K reg done_nxt;
7160:[K
7161[K [KESCESC[KOO[KBB
7162[K wire last_word;
7163:[K
7164[K [KESCESC[KOO[KBB
7165[K
7166:[K
7167[K [KESCESC[KOO[KBB
7168[K reg enable_lfsr;
7169:[K
7170[K [KESCESC[KOO[KBB
7171[K
7172:[K
7173[K [KESCESC[KOO[KBB
7174[K reg sel_payload;
7175:[K
7176[K [KESCESC[KOO[KBB
7177[K
7178:[K
7179[K [KESCESC[KOO[KBB
7180[K
7181:[K
7182[K [KESCESC[KOO[KBB
7183[K
7184:[K
7185[K [KESCESC[KOO[KBB
7186[K // =================================
7187:[K
7188[K [KESCESC[KOO[KBB
7189[K // Main state machine responsible for packet transmission
7190:[K
7191[K [KESCESC[KOO[KBB
7192[K // Tracks the current word and places data on the output signals
7193:[K
7194[K [KESCESC[KOO[KBB
7195[K
7196:[K
7197[K [KESCESC[KOO[KBB
7198[K // Generate the last word signal
7199:[K
7200[K [KESCESC[KOO[KBB
7201[K assign last_word = count == num_words - 1;
7202:[K
7203[K [KESCESC[KOO[KBB
7204[K
7205:[K
7206[K [KESCESC[KOO[KBB
7207[K always @(posedge clk)
7208:[K
7209[K [KESCESC[KOO[KBB
7210[K begin
7211:[K
7212[K [KESCESC[KOO[KBB
7213[K // Track the count and calculate the data to send
7214:[K
7215[K [KESCESC[KOO[KBB
7216[K if (reset) begin
7217:[K
7218[K [KESCESC[KOO[KBB
7219[K count <= 'h0;
7220:[K
7221[K [KESCESC[KOO[KBB
7222[K enable_lfsr <= 1'b0;
7223:[K
7224[K [KESCESC[KOO[KBB
7225[K final_ctrl <= 4'b0000;
7226:[K
7227[K [KESCESC[KOO[KBB
7228[K num_words <= {9{1'b1}};
7229:[K
7230[K [KESCESC[KOO[KBB
7231[K ctrl <= 'h0;
7232:[K
7233[K [KESCESC[KOO[KBB
7234[K done <= 1'b0;
7235:[K
7236[K [KESCESC[KOO[KBB
7237[K busy <= 1'b0;
7238:[K
7239[K [KESCESC[KOO[KBB
7240[K sel_payload <= 1'b0;
7241:[K
7242[K [KESCESC[KOO[KBB
7243[K header <= 'h0;
7244:[K
7245[K [KESCESC[KOO[KBB
7246[K end
7247:[K
7248[K [KESCESC[KOO[KBB
7249[K else if (rd_en) begin
7250:[K
7251[K [KESCESC[KOO[KBB
7252[K if (last_word) begin
7253:[K
7254[K [KESCESC[KOO[KBB
7255[K // If we are on the last word we should reset the
7256:[K
7257[K [KESCESC[KOO[KBB
7258[K // counter and move to the next pattern
7259:[K
7260[K [KESCESC[KOO[KBB
7261[K //
7262:[K
7263[K [KESCESC[KOO[KBB
7264[K // Don't reset the LFSR here as the output may not
7265:[K
7266[K [KESCESC[KOO[KBB
7267[K // have been processed yet
7268:[K
7269[K [KESCESC[KOO[KBB
7270[K count <= 'h0;
7271:[K
7272[K [KESCESC[KOO[KBB
7273[K final_ctrl <= 4'b0000;
7274:[K
7275[K [KESCESC[KOO[KBB
7276[K num_words <= {9{1'b1}};
7277:[K
7278[K [KESCESC[KOO[KBB
7279[K ctrl <= final_ctrl;
7280:[K
7281[K [KESCESC[KOO[KBB
7282[K done <= 1'b1;
7283:[K
7284[K [KESCESC[KOO[KBB
7285[K sel_payload <= 1'b1;
7286:[K
7287[K [KESCESC[KOO[KBB
7288[K header <= header_nxt;
7289:[K
7290[K [KESCESC[KOO[KBB
7291[K end
7292:[K
7293[K [KESCESC[KOO[KBB
7294[K else begin
7295:[K
7296[K [KESCESC[KOO[KBB
7297[K // Record the size and pattern if we're
7298:[K
7299[K [KESCESC[KOO[KBB
7300[K // on the appropriate word
7301:[K
7302[K [KESCESC[KOO[KBB
7303[K if (count == SIZE_PATTERN) begin
7304:[K
7305[K [KESCESC[KOO[KBB
7306[K // Work out how many words we expect to send
7307:[K
7308[K [KESCESC[KOO[KBB
7309[K num_words <= pkt_size[10:2] + (|pkt_size[1:0]);
7310:[K
7311[K [KESCESC[KOO[KBB
7312[K
7313:[K
7314[K [KESCESC[KOO[KBB
7315[K // Calculate the control bits for the final word
7316:[K
7317[K [KESCESC[KOO[KBB
7318[K case (pkt_size[1:0])
7319:[K
7320[K [KESCESC[KOO[KBB
7321[K 2'd0 : final_ctrl <= 4'b0001;
7322:[K
7323[K [KESCESC[KOO[KBB
7324[K 2'd1 : final_ctrl <= 4'b1000;
7325:[K
7326[K [KESCESC[KOO[KBB
7327[K 2'd2 : final_ctrl <= 4'b0100;
7328:[K
7329[K [KESCESC[KOO[KBB
7330[K 2'd3 : final_ctrl <= 4'b0010;
7331:[K
7332[K [KESCESC[KOO[KBB
7333[K endcase
7334:[K
7335[K [KESCESC[KOO[KBB
7336[K end
7337:[K
7338[K [KESCESC[KOO[KBB
7339[K
7340:[K
7341[K [KESCESC[KOO[KBB
7342[K // Enable the LFSR if appropriate
7343:[K
7344[K [KESCESC[KOO[KBB
7345[K if (count == START_LFSR)
7346:[K
7347[K [KESCESC[KOO[KBB
7348[K enable_lfsr <= 1'b1;
7349:[K
7350[K [KESCESC[KOO[KBB
7351[K else if (count == 'h0)
7352:[K
7353[K [KESCESC[KOO[KBB
7354[K enable_lfsr <= 1'b0;
7355:[K
7356[K [KESCESC[KOO[KBB
7357[K
7358:[K
7359[K [KESCESC[KOO[KBB
7360[K // If we are not on the last word then we should increment the
7361:[K
7362[K [KESCESC[KOO[KBB
7363[K // counter but don't touch the pattern
7364:[K
7365[K [KESCESC[KOO[KBB
7366[K count <= count + 'h1;
7367:[K
7368[K [KESCESC[KOO[KBB
7369[K header <= header_nxt;
7370:[K
7371[K [KESCESC[KOO[KBB
7372[K ctrl <= 'h0;
7373:[K
7374[K [KESCESC[KOO[KBB
7375[K done <= 1'b0;
7376:[K
7377[K [KESCESC[KOO[KBB
7378[K if (count == 'h0)
7379:[K
7380[K [KESCESC[KOO[KBB
7381[K sel_payload <= 1'b0;
7382:[K
7383[K [KESCESC[KOO[KBB
7384[K else if (count == SEQUENCE_NO)
7385:[K
7386[K [KESCESC[KOO[KBB
7387[K sel_payload <= 1'b1;
7388:[K
7389[K [KESCESC[KOO[KBB
7390[K end
7391:[K
7392[K [KESCESC[KOO[KBB
7393[K busy <= 1'b1;
7394:[K
7395[K [KESCESC[KOO[KBB
7396[K end
7397:[K
7398[K [KESCESC[KOO[KBB
7399[K else if (count == 'h0)
7400:[K
7401[K [KESCESC[KOO[KBB
7402[K busy <= 1'b0;
7403:[K
7404[K [KESCESC[KOO[KBB
7405[K end
7406:[K
7407[K [KESCESC[KOO[KBB
7408[K
7409:[K
7410[K [KESCESC[KOO[KBB
7411[K assign data = sel_payload ? payload : header;
7412:[K
7413[K [KESCESC[KOO[KBB
7414[K
7415:[K
7416[K [KESCESC[KOO[KBB
7417[K
7418:[K
7419[K [KESCESC[KOO[KBB
7420[K
7421:[K
7422[K [KESCESC[KOO[KBB
7423[K // =================================
7424:[K
7425[K [KESCESC[KOO[KBB
7426[K // Muxes to work out what data to transmit
7427:[K
7428[K [KESCESC[KOO[KBB
7429[K
7430:[K
7431[K [KESCESC[KOO[KBB
7432[K always @*
7433:[K
7434[K [KESCESC[KOO[KBB
7435[K begin
7436:[K
7437[K [KESCESC[KOO[KBB
7438[K case (count)
7439:[K
7440[K [KESCESC[KOO[KBB
7441[K //DA_HI : header_nxt = 32'h 00_ca_fe_00;
7442:[K
7443[K [KESCESC[KOO[KBB
7444[K DA_LO_SA_HI : header_nxt = {8'h 01, 5'd0, port, 16'h 00_ca};
7445:[K
7446[K [KESCESC[KOO[KBB
7447[K SA_LO : header_nxt = {24'h fe_00_00, 5'd0, port};
7448:[K
7449[K [KESCESC[KOO[KBB
7450[K SIZE_PATTERN: header_nxt = {4'hf, 1'b0, pkt_size, 8'd0, {(8 - NUM_PATTERNS){1'b0}}, pattern};
7451:[K
7452[K [KESCESC[KOO[KBB
7453[K default : header_nxt = 32'h 00_ca_fe_00;
7454:[K
7455[K [KESCESC[KOO[KBB
7456[K endcase
7457:[K
7458[K [KESCESC[KOO[KBB
7459[K end
7460:[K
7461[K [KESCESC[KOO[KBB
7462[K
7463:[K
7464[K [KESCESC[KOO[KBB
7465[K always @*
7466:[K
7467[K [KESCESC[KOO[KBB
7468[K begin
7469:[K
7470[K [KESCESC[KOO[KBB
7471[K case (pattern)
7472:[K
7473[K [KESCESC[KOO[KBB
7474[K ALL_0_PATTERN : payload = 32'h 00000000;
7475:[K
7476[K [KESCESC[KOO[KBB
7477[K ALL_1_PATTERN : payload = 32'h ffffffff;
7478:[K
7479[K [KESCESC[KOO[KBB
7480[K ALT_01_PATTERN : payload = 32'h 55555555;
7481:[K
7482[K [KESCESC[KOO[KBB
7483[K ALT_10_PATTERN : payload = 32'h aaaaaaaa;
7484:[K
7485[K [KESCESC[KOO[KBB
7486[K default : payload = rand_data;
7487:[K
7488[K [KESCESC[KOO[KBB
7489[K endcase
7490:[K
7491[K [KESCESC[KOO[KBB
7492[K end
7493:[K
7494[K [KESCESC[KOO[KBB
7495[K
7496:[K
7497[K [KESCESC[KOO[KBB
7498[K
7499:[K
7500[K [KESCESC[KOO[KBB
7501[K
7502:[K
7503[K [KESCESC[KOO[KBB
7504[K // =================================
7505:[K
7506[K [KESCESC[KOO[KBB
7507[K // LFSR to generate random patterns
7508:[K
7509[K [KESCESC[KOO[KBB
7510[K //
7511:[K
7512[K [KESCESC[KOO[KBB
7513[K // The LFSR should only progress when we are generating a random pattern at
7514:[K
7515[K [KESCESC[KOO[KBB
7516[K // only when we are in the payload section.
7517:[K
7518[K [KESCESC[KOO[KBB
7519[K //
7520:[K
7521[K [KESCESC[KOO[KBB
7522[K // The first word should actually be repeated twice in the payload to allow
7523:[K
7524[K [KESCESC[KOO[KBB
7525[K // the receiver to start an identical LFSR
7526:[K
7527[K [KESCESC[KOO[KBB
7528[K lfsr32 patgen (
7529:[K
7530[K [KESCESC[KOO[KBB
7531[K .val (rand_data),
7532:[K
7533[K [KESCESC[KOO[KBB
7534[K .rd (pattern == RANDOM_PATTERN && rd_en && enable_lfsr),
7535:[K
7536[K [KESCESC[KOO[KBB
7537[K .seed (seq_no),
7538:[K
7539[K [KESCESC[KOO[KBB
7540[K .reset (reset || !enable_lfsr),
7541:[K
7542[K [KESCESC[KOO[KBB
7543[K .clk (clk)
7544:[K
7545[K [KESCESC[KOO[KBB
7546[K );
7547:[K
7548[K [KESCESC[KOO[KBB
7549[K
7550:[K
7551[K [KESCESC[KOO[KAA
7552[K[HM
7553[44;1H
7554[K:[K
7555[K [KESCESC[KOO[KAA
7556[K[HM
7557[44;1H
7558[K:[K
7559[K [KESCESC[KOO[KAA
7560[K[HM
7561[44;1H
7562[K:[K
7563[K [KESCESC[KOO[KAA
7564[K[HM assign data = sel_payload ? payload : header;
7565[44;1H
7566[K:[K
7567[K [KESCESC[KOO[KAA
7568[K[HM
7569[44;1H
7570[K:[K
7571[K [KESCESC[KOO[KAA
7572[K[HM end
7573[44;1H
7574[K:[K
7575[K [KESCESC[KOO[KAA
7576[K[HM busy <= 1'b0;
7577[44;1H
7578[K:[K
7579[K [KESCESC[KOO[KAA
7580[K[HM else if (count == 'h0)
7581[44;1H
7582[K:[K
7583[K [KESCESC[KOO[KAA
7584[K[HM end
7585[44;1H
7586[K:[K
7587[K [KESCESC[KOO[KAA
7588[K[HM busy <= 1'b1;
7589[44;1H
7590[K:[K
7591[K [KESCESC[KOO[KAA
7592[K[HM end
7593[44;1H
7594[K:[K
7595[K [KESCESC[KOO[KAA
7596[K[HM sel_payload <= 1'b1;
7597[44;1H
7598[K:[K
7599[K [KESCESC[KOO[KAA
7600[K[HM else if (count == SEQUENCE_NO)
7601[44;1H
7602[K:[K
7603[K [KESCESC[KOO[KAA
7604[K[HM sel_payload <= 1'b0;
7605[44;1H
7606[K:[K
7607[K [KESCESC[KOO[KAA
7608[K[HM if (count == 'h0)
7609[44;1H
7610[K:[K
7611[K [KESCESC[KOO[KAA
7612[K[HM done <= 1'b0;
7613[44;1H
7614[K:[K
7615[K [KESCESC[KOO[KAA
7616[K[HM ctrl <= 'h0;
7617[44;1H
7618[K:[K
7619[K [KESCESC[KOO[KAA
7620[K[HM header <= header_nxt;
7621[44;1H
7622[K:[K
7623[K [KESCESC[KOO[KAA
7624[K[HM count <= count + 'h1;
7625[44;1H
7626[K:[K
7627[K [KESCESC[KOO[KAA
7628[K[HM // counter but don't touch the pattern
7629[44;1H
7630[K:[K
7631[K [KESCESC[KOO[KAA
7632[K[HM // If we are not on the last word then we should increment the
7633[44;1H
7634[K:[K
7635[K [KESCESC[KOO[KAA
7636[K[HM
7637[44;1H
7638[K:[K
7639[K [KESCESC[KOO[KAA
7640[K[HM enable_lfsr <= 1'b0;
7641[44;1H
7642[K:[K
7643[K [KESCESC[KOO[KAA
7644[K[HM else if (count == 'h0)
7645[44;1H
7646[K:[K
7647[K [KESCESC[KOO[KAA
7648[K[HM enable_lfsr <= 1'b1;
7649[44;1H
7650[K:[K
7651[K [KESCESC[KOO[KAA
7652[K[HM if (count == START_LFSR)
7653[44;1H
7654[K:[K
7655[K [KESCESC[KOO[KAA
7656[K[HM // Enable the LFSR if appropriate
7657[44;1H
7658[K:[K
7659[K [KESCESC[KOO[KAA
7660[K[HM
7661[44;1H
7662[K:[K
7663[K [KESCESC[KOO[KAA
7664[K[HM end
7665[44;1H
7666[K:[K
7667[K [KESCESC[KOO[KAA
7668[K[HM endcase
7669[44;1H
7670[K:[K
7671[K [KESCESC[KOO[KAA
7672[K[HM 2'd3 : final_ctrl <= 4'b0010;
7673[44;1H
7674[K:[K
7675[K [KESCESC[KOO[KAA
7676[K[HM 2'd2 : final_ctrl <= 4'b0100;
7677[44;1H
7678[K:[K
7679[K [KESCESC[KOO[KAA
7680[K[HM 2'd1 : final_ctrl <= 4'b1000;
7681[44;1H
7682[K:[K
7683[K [KESCESC[KOO[KAA
7684[K[HM 2'd0 : final_ctrl <= 4'b0001;
7685[44;1H
7686[K:[K
7687[K [KESCESC[KOO[KAA
7688[K[HM case (pkt_size[1:0])
7689[44;1H
7690[K:[K
7691[K [KESCESC[KOO[KAA
7692[K[HM // Calculate the control bits for the final word
7693[44;1H
7694[K:[K
7695[K [KESCESC[KOO[KAA
7696[K[HM
7697[44;1H
7698[K:[K
7699[K [KESCESC[KOO[KAA
7700[K[HM num_words <= pkt_size[10:2] + (|pkt_size[1:0]);
7701[44;1H
7702[K:[K
7703[K [KESCESC[KOO[KAA
7704[K[HM // Work out how many words we expect to send
7705[44;1H
7706[K:[K
7707[K [KESCESC[KOO[KAA
7708[K[HM if (count == SIZE_PATTERN) begin
7709[44;1H
7710[K:[K
7711[K [KESCESC[KOO[KAA
7712[K[HM // on the appropriate word
7713[44;1H
7714[K:[K
7715[K [KESCESC[KOO[KAA
7716[K[HM // Record the size and pattern if we're
7717[44;1H
7718[K:[K
7719[K [KESCESC[KOO[KAA
7720[K[HM else begin
7721[44;1H
7722[K:[K
7723[K [KESCESC[KOO[KAA
7724[K[HM end
7725[44;1H
7726[K:[K
7727[K [KESCESC[KOO[KAA
7728[K[HM header <= header_nxt;
7729[44;1H
7730[K:[K
7731[K [KESCESC[KOO[KAA
7732[K[HM sel_payload <= 1'b1;
7733[44;1H
7734[K:[K
7735[K [KESCESC[KOO[KAA
7736[K[HM done <= 1'b1;
7737[44;1H
7738[K:[K
7739[K [KESCESC[KOO[KAA
7740[K[HM ctrl <= final_ctrl;
7741[44;1H
7742[K:[K
7743[K [KESCESC[KOO[KAA
7744[K[HM num_words <= {9{1'b1}};
7745[44;1H
7746[K:[K
7747[K [KESCESC[KOO[KAA
7748[K[HM final_ctrl <= 4'b0000;
7749[44;1H
7750[K:[K
7751[K [KESCESC[KOO[KAA
7752[K[HM count <= 'h0;
7753[44;1H
7754[K:[K
7755[K [KESCESC[KOO[KAA
7756[K[HM // have been processed yet
7757[44;1H
7758[K:[K
7759[K [KESCESC[KOO[KAA
7760[K[HM // Don't reset the LFSR here as the output may not
7761[44;1H
7762[K:[K
7763[K [KESCESC[KOO[KAA
7764[K[HM //
7765[44;1H
7766[K:[K
7767[K [KESCESC[KOO[KAA
7768[K[HM // counter and move to the next pattern
7769[44;1H
7770[K:[K
7771[K [KESCESC[KOO[KAA
7772[K[HM // If we are on the last word we should reset the
7773[44;1H
7774[K:[K
7775[K [KESCESC[KOO[KAA
7776[K[HM if (last_word) begin
7777[44;1H
7778[K:[K
7779[K [KESCESC[KOO[KAA
7780[K[HM else if (rd_en) begin
7781[44;1H
7782[K:[K
7783[K [KESCESC[KOO[KAA
7784[K[HM end
7785[44;1H
7786[K:[K
7787[K [KESCESC[KOO[KAA
7788[K[HM header <= 'h0;
7789[44;1H
7790[K:[K
7791[K [KESCESC[KOO[KAA
7792[K[HM sel_payload <= 1'b0;
7793[44;1H
7794[K:[K
7795[K [KESCESC[KOO[KAA
7796[K[HM busy <= 1'b0;
7797[44;1H
7798[K:[K
7799[K [KESCESC[KOO[KAA
7800[K[HM done <= 1'b0;
7801[44;1H
7802[K:[K
7803[K [KESCESC[KOO[KAA
7804[K[HM ctrl <= 'h0;
7805[44;1H
7806[K:[K
7807[K [KESCESC[KOO[KAA
7808[K[HM num_words <= {9{1'b1}};
7809[44;1H
7810[K:[K
7811[K [KESCESC[KOO[KAA
7812[K[HM final_ctrl <= 4'b0000;
7813[44;1H
7814[K:[K
7815[K [KESCESC[KOO[KAA
7816[K[HM enable_lfsr <= 1'b0;
7817[44;1H
7818[K:[K
7819[K [KESCESC[KOO[KAA
7820[K[HM count <= 'h0;
7821[44;1H
7822[K:[K
7823[K [KESCESC[KOO[KAA
7824[K[HM if (reset) begin
7825[44;1H
7826[K:[K
7827[K [KESCESC[KOO[KAA
7828[K[HM // Track the count and calculate the data to send
7829[44;1H
7830[K:[K
7831[K [KESCESC[KOO[KAA
7832[K[HM begin
7833[44;1H
7834[K:[K
7835[K [KESCESC[KOO[KAA
7836[K[HM always @(posedge clk)
7837[44;1H
7838[K:[K
7839[K [KESCESC[KOO[KAA
7840[K[HM
7841[44;1H
7842[K:[K
7843[K [KESCESC[KOO[KAA
7844[K[HM assign last_word = count == num_words - 1;
7845[44;1H
7846[K:[K
7847[K [KESCESC[KOO[KAA
7848[K[HM // Generate the last word signal
7849[44;1H
7850[K:[K
7851[K [KESCESC[KOO[KAA
7852[K[HM
7853[44;1H
7854[K:[K
7855[K [KESCESC[KOO[KAA
7856[K[HM // Tracks the current word and places data on the output signals
7857[44;1H
7858[K:[K
7859[K [KESCESC[KOO[KAA
7860[K[HM // Main state machine responsible for packet transmission
7861[44;1H
7862[K:[K
7863[K [KESCESC[KOO[KAA
7864[K[HM // =================================
7865[44;1H
7866[K:[K
7867[K [KESCESC[KOO[KAA
7868[K[HM
7869[44;1H
7870[K:[K
7871[K [KESCESC[KOO[KAA
7872[K[HM
7873[44;1H
7874[K:[K
7875[K [KESCESC[KOO[KAA
7876[K[HM
7877[44;1H
7878[K:[K
7879[K [KESCESC[KOO[KAA
7880[K[HM reg sel_payload;
7881[44;1H
7882[K:[K
7883[K [KESCESC[KOO[KAA
7884[K[HM
7885[44;1H
7886[K:[K
7887[K [KESCESC[KOO[KAA
7888[K[HM reg enable_lfsr;
7889[44;1H
7890[K:[K
7891[K [KESCESC[KOO[KAA
7892[K[HM
7893[44;1H
7894[K:[K
7895[K [KESCESC[KOO[KAA
7896[K[HM wire last_word;
7897[44;1H
7898[K:[K
7899[K [KESCESC[KOO[KAA
7900[K[HM reg done_nxt;
7901[44;1H
7902[K:[K
7903[K [KESCESC[KOO[KAA
7904[K[HM
7905[44;1H
7906[K:[K
7907[K [KESCESC[KOO[KAA
7908[K[HM reg [31:0] header;
7909[44;1H
7910[K:[K
7911[K [KESCESC[KOO[KAA
7912[K[HM reg [31:0] payload;
7913[44;1H
7914[K:[K
7915[K [KESCESC[KOO[KAA
7916[K[HM reg [31:0] header_nxt;
7917[44;1H
7918[K:[K
7919[K [KESCESC[KOO[KAA
7920[K[HM wire [31:0] rand_data;
7921[44;1H
7922[K:[K
7923[K [KESCESC[KOO[KAA
7924[K[HM
7925[44;1H
7926[K:[K
7927[K [KESCESC[KOO[KAA
7928[K[HM reg [8:0] count;
7929[44;1H
7930[K:[K
7931[K [KESCESC[KOO[KAA
7932[K[HM
7933[44;1H
7934[K:[K
7935[K [KESCESC[KOO[KAA
7936[K[HM reg [3:0] final_ctrl;
7937[44;1H
7938[K:[K
7939[K [KESCESC[KOO[KAA
7940[K[HM reg [8:0] num_words;
7941[44;1H
7942[K:[K
7943[K [KESCESC[KOO[KAA
7944[K[HM // Packet length related variables
7945[44;1H
7946[K:[K
7947[K [KESCESC[KOO[KAA
7948[K[HM
7949[44;1H
7950[K:[K
7951[K [KESCESC[KOO[KAA
7952[K[HM localparam SEQUENCE_NO = 'd4;
7953[44;1H
7954[K:[K
7955[K [KESCESC[KOO[KAA
7956[K[HM localparam SIZE_PATTERN = 'd3;
7957[44;1H
7958[K:[K
7959[K [KESCESC[KOO[KAA
7960[K[HM localparam SA_LO = 'd2;
7961[44;1H
7962[K:[K
7963[K [KESCESC[KOO[KAA
7964[K[HM localparam DA_LO_SA_HI = 'd1;
7965[44;1H
7966[K:[K
7967[K [KESCESC[KOO[KAA
7968[K[HM localparam DA_HI = 'd0;
7969[44;1H
7970[K:[K
7971[K [KESCESC[KOO[KAA
7972[K[HM // Word locations of various packet components
7973[44;1H
7974[K:[K
7975[K [KESCESC[KOO[KAA
7976[K[HM
7977[44;1H
7978[K:[K
7979[K [KESCESC[KOO[KAA
7980[K[HM localparam START_LFSR = 'd5;
7981[44;1H
7982[K:[K
7983[K [KESCESC[KOO[KAA
7984[K[HM // Count when the LFSR should be enabled
7985[44;1H
7986[K:[K
7987[K [KESCESC[KOO[KAA
7988[K[HM
7989[44;1H
7990[K:[K
7991[K [KESCESC[KOO[KAA
7992[K[HM localparam RANDOM_PATTERN = 5'b10000;
7993[44;1H
7994[K:[K
7995[K [KESCESC[KOO[KAA
7996[K[HM localparam ALT_10_PATTERN = 5'b01000;
7997[44;1H
7998[K:[K
7999[K [KESCESC[KOO[KAA
8000[K[HM localparam ALT_01_PATTERN = 5'b00100;
8001[44;1H
8002[K:[K
8003[K [KESCESC[KOO[KAA
8004[K[HM localparam ALL_1_PATTERN = 5'b00010;
8005[44;1H
8006[K:[K
8007[K [KESCESC[KOO[KAA
8008[K[HM localparam ALL_0_PATTERN = 5'b00001;
8009[44;1H
8010[K:[K
8011[K [KESCESC[KOO[KAA
8012[K[HM // Identify different patters
8013[44;1H
8014[K:[K
8015[K [KESCESC[KOO[KAA
8016[K[HM
8017[44;1H
8018[K:[K
8019[K [KESCESC[KOO[KAA
8020[K[HM );
8021[44;1H
8022[K:[K
8023[K [KESCESC[KOO[KAA
8024[K[HM input clk
8025[44;1H
8026[K:[K
8027[K [KESCESC[KOO[KAA
8028[K[HM input reset,
8029[44;1H
8030[K:[K
8031[K [KESCESC[KOO[KAA
8032[K[HM //--- misc
8033[44;1H
8034[K:[K
8035[K [KESCESC[KOO[KAA
8036[K[HM
8037[44;1H
8038[K:[K
8039[K [KESCESC[KOO[KAA
8040[K[HM output reg done, // Indicates the last word of the packet is being output
8041[44;1H
8042[K:[K
8043[K [KESCESC[KOO[KAA
8044[K[HM output reg busy, // Currently transmitting packets
8045[44;1H
8046[K:[K
8047[K [KESCESC[KOO[KAA
8048[K[HM
8049[44;1H
8050[K:[K
8051[K [KESCESC[KOO[KBB
8052[K
8053:[K
8054[K [KESCESC[KOO[KBB
8055[K
8056:[K
8057[K [KESCESC[KOO[KBB
8058[K
8059:[K
8060[K [KESCESC[KOO[KBB
8061[K // =================================
8062:[K
8063[K [KESCESC[KOO[KBB
8064[K // Main state machine responsible for packet transmission
8065:[K
8066[K [KESCESC[KOO[KBB
8067[K // Tracks the current word and places data on the output signals
8068:[K
8069[K [KESCESC[KOO[KBB
8070[K
8071:[K
8072[K [KESCESC[KOO[KBB
8073[K // Generate the last word signal
8074:[K
8075[K [KESCESC[KOO[KBB
8076[K assign last_word = count == num_words - 1;
8077:[K
8078[K [KESCESC[KOO[KBB
8079[K
8080:[K
8081[K [KESCESC[KOO[KBB
8082[K always @(posedge clk)
8083:[K
8084[K [KESCESC[KOO[KBB
8085[K begin
8086:[K
8087[K [KESCESC[KOO[KBB
8088[K // Track the count and calculate the data to send
8089:[K
8090[K [KESCESC[KOO[KBB
8091[K if (reset) begin
8092:[K
8093[K [KESCESC[KOO[KBB
8094[K count <= 'h0;
8095:[K
8096[K [KESCESC[KOO[KBB
8097[K enable_lfsr <= 1'b0;
8098:[K
8099[K [KESCESC[KOO[KBB
8100[K final_ctrl <= 4'b0000;
8101:[K
8102[K [KESCESC[KOO[KBB
8103[K num_words <= {9{1'b1}};
8104:[K
8105[K [KESCESC[KOO[KBB
8106[K ctrl <= 'h0;
8107:[K
8108[K [KESCESC[KOO[KBB
8109[K done <= 1'b0;
8110:[K
8111[K [KESCESC[KOO[KBB
8112[K busy <= 1'b0;
8113:[K
8114[K [KESCESC[KOO[KBB
8115[K sel_payload <= 1'b0;
8116:[K
8117[K [KESCESC[KOO[KBB
8118[K header <= 'h0;
8119:[K
8120[K [KESCESC[KOO[KBB
8121[K end
8122:[K
8123[K [KESCESC[KOO[KBB
8124[K else if (rd_en) begin
8125:[K
8126[K [KESCESC[KOO[KBB
8127[K if (last_word) begin
8128:[K
8129[K [KESCESC[KOO[KBB
8130[K // If we are on the last word we should reset the
8131:[K
8132[K [KESCESC[KOO[KBB
8133[K // counter and move to the next pattern
8134:[K
8135[K [KESCESC[KOO[KBB
8136[K //
8137:[K
8138[K [KESCESC[KOO[KAA
8139[K[HM reg [3:0] final_ctrl;
8140[44;1H
8141[K:[K
8142[K [KESCESC[KOO[KAA
8143[K[HM reg [8:0] num_words;
8144[44;1H
8145[K:[K
8146[K [KESCESC[KOO[KAA
8147[K[HM // Packet length related variables
8148[44;1H
8149[K:[K
8150[K [KESCESC[KOO[KAA
8151[K[HM
8152[44;1H
8153[K:[K
8154[K [KESCESC[KOO[KAA
8155[K[HM localparam SEQUENCE_NO = 'd4;
8156[44;1H
8157[K:[K
8158[K [KESCESC[KOO[KAA
8159[K[HM localparam SIZE_PATTERN = 'd3;
8160[44;1H
8161[K:[K
8162[K [KESCESC[KOO[KAA
8163[K[HM localparam SA_LO = 'd2;
8164[44;1H
8165[K:[K
8166[K [KESCESC[KOO[KAA
8167[K[HM localparam DA_LO_SA_HI = 'd1;
8168[44;1H
8169[K:[K
8170[K [KESCESC[KOO[KAA
8171[K[HM localparam DA_HI = 'd0;
8172[44;1H
8173[K:[K
8174[K [KESCESC[KOO[KAA
8175[K[HM // Word locations of various packet components
8176[44;1H
8177[K:[K
8178[K [KESCESC[KOO[KAA
8179[K[HM
8180[44;1H
8181[K:[K
8182[K [KESCESC[KOO[KAA
8183[K[HM localparam START_LFSR = 'd5;
8184[44;1H
8185[K:[K
8186[K [KESCESC[KOO[KAA
8187[K[HM // Count when the LFSR should be enabled
8188[44;1H
8189[K:[K
8190[K [KESCESC[KOO[KAA
8191[K[HM
8192[44;1H
8193[K:[K
8194[K [KESCESC[KOO[KAA
8195[K[HM localparam RANDOM_PATTERN = 5'b10000;
8196[44;1H
8197[K:[K
8198[K [KESCESC[KOO[KAA
8199[K[HM localparam ALT_10_PATTERN = 5'b01000;
8200[44;1H
8201[K:[K
8202[K [KESCESC[KOO[KAA
8203[K[HM localparam ALT_01_PATTERN = 5'b00100;
8204[44;1H
8205[K:[K
8206[K [KESCESC[KOO[KAA
8207[K[HM localparam ALL_1_PATTERN = 5'b00010;
8208[44;1H
8209[K:[K
8210[K [KESCESC[KOO[KAA
8211[K[HM localparam ALL_0_PATTERN = 5'b00001;
8212[44;1H
8213[K:[K
8214[K [KESCESC[KOO[KAA
8215[K[HM // Identify different patters
8216[44;1H
8217[K:[K
8218[K [KESCESC[KOO[KAA
8219[K[HM
8220[44;1H
8221[K:[K
8222[K [KESCESC[KOO[KAA
8223[K[HM );
8224[44;1H
8225[K:[K
8226[K [KESCESC[KOO[KAA
8227[K[HM input clk
8228[44;1H
8229[K:[K
8230[K [KESCESC[KOO[KAA
8231[K[HM input reset,
8232[44;1H
8233[K:[K
8234[K [KESCESC[KOO[KAA
8235[K[HM //--- misc
8236[44;1H
8237[K:[K
8238[K [KESCESC[KOO[KAA
8239[K[HM
8240[44;1H
8241[K:[K
8242[K [KESCESC[KOO[KAA
8243[K[HM output reg done, // Indicates the last word of the packet is being output
8244[44;1H
8245[K:[K
8246[K [KESCESC[KOO[KAA
8247[K[HM output reg busy, // Currently transmitting packets
8248[44;1H
8249[K:[K
8250[K [KESCESC[KOO[KAA
8251[K[HM
8252[44;1H
8253[K:[K
8254[K [KESCESC[KOO[KAA
8255[K[HM input [SEQ_NO_WIDTH - 1:0] seq_no, // Initial sequence number
8256[44;1H
8257[K:[K
8258[K [KESCESC[KOO[KAA
8259[K[HM input [10:0] pkt_size, // Packet size
8260[44;1H
8261[K:[K
8262[K [KESCESC[KOO[KAA
8263[K[HM input [NUM_PATTERNS - 1:0] pattern, // Pattern enable
8264[44;1H
8265[K:[K
8266[K [KESCESC[KOO[KAA
8267[K[HM input [2:0] port, // Source port number
8268[44;1H
8269[K:[K
8270[K [KESCESC[KOO[KAA
8271[K[HM
8272[44;1H
8273[K:[K
8274[K [KESCESC[KOO[KAA
8275[K[HM input rd_en, // Output the next word
8276[44;1H
8277[K:[K
8278[K [KESCESC[KOO[KAA
8279[K[HM output reg [3:0] ctrl,
8280[44;1H
8281[K:[K
8282[K [KESCESC[KOO[KAA
8283[K[HM output [31:0] data,
8284[44;1H
8285[K:[K
8286[K [KESCESC[KOO[KAA
8287[K[HM (
8288[44;1H
8289[K:[K
8290[K [KESCESC[KOO[KAA
8291[K[HM )
8292[44;1H
8293[K:[K
8294[K [KESCESC[KOO[KAA
8295[K[HM SEQ_NO_WIDTH = 32
8296[44;1H
8297[K:[K
8298[K [KESCESC[KOO[KAA
8299[K[HM NUM_PATTERNS = 5,
8300[44;1H
8301[K:[K
8302[K [KESCESC[KOO[KAA
8303[K[HM CPCI_NF2_DATA_WIDTH = 32,
8304[44;1H
8305[K:[K
8306[K [KESCESC[KOO[KAA
8307[K[HMmodule phy_test_pktgen #(parameter
8308[44;1H
8309[K:[K
8310[K [KESCESC[KOO[KAA
8311[K[HM
8312[44;1H
8313[K:[K
8314[K [KESCESC[KOO[KAA
8315[K[HM///////////////////////////////////////////////////////////////////////////////
8316[44;1H
8317[K:[K
8318[K [KESCESC[KOO[KAA
8319[K[HM//
8320[44;1H
8321[K:[K
8322[K [KESCESC[KOO[KAA
8323[K[HM// Note: data is muxed -- not the direct output for a flop
8324[44;1H
8325[K:[K
8326[K [KESCESC[KOO[KAA
8327[K[HM//
8328[44;1H
8329[K:[K
8330[K [KESCESC[KOO[KBB
8331[K localparam SEQUENCE_NO = 'd4;
8332:[K
8333[K [KESCESC[KOO[KBB
8334[K
8335:[K
8336[K [KESCESC[KOO[KBB
8337[K // Packet length related variables
8338:[K
8339[K [KESCESC[KOO[KBB
8340[K reg [8:0] num_words;
8341:[K
8342[K [KESCESC[KOO[KBB
8343[K reg [3:0] final_ctrl;
8344:[K
8345[K [KESCESC[KOO[KBB
8346[K
8347:[K
8348[K [KESCESC[KOO[KBB
8349[K reg [8:0] count;
8350:[K
8351[K [KESCESC[KOO[KBB
8352[K
8353:[K
8354[K [KESCESC[KOO[KBB
8355[K wire [31:0] rand_data;
8356:[K
8357[K [KESCESC[KOO[KBB
8358[K reg [31:0] header_nxt;
8359:[K
8360[K [KESCESC[KOO[KBB
8361[K reg [31:0] payload;
8362:[K
8363[K [KESCESC[KOO[KBB
8364[K reg [31:0] header;
8365:[K
8366[K [KESCESC[KOO[KBB
8367[K
8368:[K
8369[K [KESCESC[KOO[KBB
8370[K reg done_nxt;
8371:[K
8372[K [KESCESC[KOO[KBB
8373[K wire last_word;
8374:[K
8375[K [KESCESC[KOO[KBB
8376[K
8377:[K
8378[K [KESCESC[KOO[KBB
8379[K reg enable_lfsr;
8380:[K
8381[K [KESCESC[KOO[KBB
8382[K
8383:[K
8384[K [KESCESC[KOO[KBB
8385[K reg sel_payload;
8386:[K
8387[K [KESCESC[KOO[KBB
8388[K
8389:[K
8390[K [KESCESC[KOO[KBB
8391[K
8392:[K
8393[K [KESCESC[KOO[KBB
8394[K
8395:[K
8396[K [KESCESC[KOO[KBB
8397[K // =================================
8398:[K
8399[K [KESCESC[KOO[KBB
8400[K // Main state machine responsible for packet transmission
8401:[K
8402[K [KESCESC[KOO[KBB
8403[K // Tracks the current word and places data on the output signals
8404:[K
8405[K [KESCESC[KOO[KBB
8406[K
8407:[K
8408[K [KESCESC[KOO[KBB
8409[K // Generate the last word signal
8410:[K
8411[K [KESCESC[KOO[KBB
8412[K assign last_word = count == num_words - 1;
8413:[K
8414[K [KESCESC[KOO[KBB
8415[K
8416:[K
8417[K [KESCESC[KOO[KBB
8418[K always @(posedge clk)
8419:[K
8420[K [KESCESC[KOO[KBB
8421[K begin
8422:[K
8423[K [KESCESC[KOO[KBB
8424[K // Track the count and calculate the data to send
8425:[K
8426[K [KESCESC[KOO[KBB
8427[K if (reset) begin
8428:[K
8429[K [KESCESC[KOO[KBB
8430[K count <= 'h0;
8431:[K
8432[K [KESCESC[KOO[KBB
8433[K enable_lfsr <= 1'b0;
8434:[K
8435[K [KESCESC[KOO[KBB
8436[K final_ctrl <= 4'b0000;
8437:[K
8438[K [KESCESC[KOO[KBB
8439[K num_words <= {9{1'b1}};
8440:[K
8441[K [KESCESC[KOO[KBB
8442[K ctrl <= 'h0;
8443:[K
8444[K [KESCESC[KOO[KBB
8445[K done <= 1'b0;
8446:[K
8447[K [KESCESC[KOO[KBB
8448[K busy <= 1'b0;
8449:[K
8450[K [KESCESC[KOO[KBB
8451[K sel_payload <= 1'b0;
8452:[K
8453[K [KESCESC[KOO[KBB
8454[K header <= 'h0;
8455:[K
8456[K [KESCESC[KOO[KBB
8457[K end
8458:[K
8459[K [KESCESC[KOO[KBB
8460[K else if (rd_en) begin
8461:[K
8462[K [KESCESC[KOO[KBB
8463[K if (last_word) begin
8464:[K
8465[K [KESCESC[KOO[KBB
8466[K // If we are on the last word we should reset the
8467:[K
8468[K [KESCESC[KOO[KBB
8469[K // counter and move to the next pattern
8470:[K
8471[K [KESCESC[KOO[KBB
8472[K //
8473:[K
8474[K [KESCESC[KOO[KBB
8475[K // Don't reset the LFSR here as the output may not
8476:[K
8477[K [KESCESC[KOO[KBB
8478[K // have been processed yet
8479:[K
8480[K [KESCESC[KOO[KBB
8481[K count <= 'h0;
8482:[K
8483[K [KESCESC[KOO[KBB
8484[K final_ctrl <= 4'b0000;
8485:[K
8486[K [KESCESC[KOO[KBB
8487[K num_words <= {9{1'b1}};
8488:[K
8489[K [KESCESC[KOO[KBB
8490[K ctrl <= final_ctrl;
8491:[K
8492[K [KESCESC[KOO[KBB
8493[K done <= 1'b1;
8494:[K
8495[K [KESCESC[KOO[KBB
8496[K sel_payload <= 1'b1;
8497:[K
8498[K [KESCESC[KOO[KBB
8499[K header <= header_nxt;
8500:[K
8501[K [KESCESC[KOO[KBB
8502[K end
8503:[K
8504[K [KESCESC[KOO[KBB
8505[K else begin
8506:[K
8507[K [KESCESC[KOO[KBB
8508[K // Record the size and pattern if we're
8509:[K
8510[K [KESCESC[KOO[KBB
8511[K // on the appropriate word
8512:[K
8513[K [KESCESC[KOO[KBB
8514[K if (count == SIZE_PATTERN) begin
8515:[K
8516[K [KESCESC[KOO[KBB
8517[K // Work out how many words we expect to send
8518:[K
8519[K [KESCESC[KOO[KBB
8520[K num_words <= pkt_size[10:2] + (|pkt_size[1:0]);
8521:[K
8522[K [KESCESC[KOO[KBB
8523[K
8524:[K
8525[K [KESCESC[KOO[KBB
8526[K // Calculate the control bits for the final word
8527:[K
8528[K [KESCESC[KOO[KBB
8529[K case (pkt_size[1:0])
8530:[K
8531[K [KESCESC[KOO[KBB
8532[K 2'd0 : final_ctrl <= 4'b0001;
8533:[K
8534[K [KESCESC[KOO[KBB
8535[K 2'd1 : final_ctrl <= 4'b1000;
8536:[K
8537[K [KESCESC[KOO[KBB
8538[K 2'd2 : final_ctrl <= 4'b0100;
8539:[K
8540[K [KESCESC[KOO[KBB
8541[K 2'd3 : final_ctrl <= 4'b0010;
8542:[K
8543[K [KESCESC[KOO[KBB
8544[K endcase
8545:[K
8546[K [KESCESC[KOO[KBB
8547[K end
8548:[K
8549[K [KESCESC[KOO[KBB
8550[K
8551:[K
8552[K [KESCESC[KOO[KBB
8553[K // Enable the LFSR if appropriate
8554:[K
8555[K [KESCESC[KOO[KBB
8556[K if (count == START_LFSR)
8557:[K
8558[K [KESCESC[KOO[KBB
8559[K enable_lfsr <= 1'b1;
8560:[K
8561[K [KESCESC[KOO[KBB
8562[K else if (count == 'h0)
8563:[K
8564[K [KESCESC[KOO[KBB
8565[K enable_lfsr <= 1'b0;
8566:[K
8567[K [KESCESC[KOO[KBB
8568[K
8569:[K
8570[K [KESCESC[KOO[KBB
8571[K // If we are not on the last word then we should increment the
8572:[K
8573[K [KESCESC[KOO[KBB
8574[K // counter but don't touch the pattern
8575:[K
8576[K [KESCESC[KOO[KBB
8577[K count <= count + 'h1;
8578:[K
8579[K [KESCESC[KOO[KBB
8580[K header <= header_nxt;
8581:[K
8582[K [KESCESC[KOO[KBB
8583[K ctrl <= 'h0;
8584:[K
8585[K [KESCESC[KOO[KBB
8586[K done <= 1'b0;
8587:[K
8588[K [KESCESC[KOO[KBB
8589[K if (count == 'h0)
8590:[K
8591[K [KESCESC[KOO[KBB
8592[K sel_payload <= 1'b0;
8593:[K
8594[K [KESCESC[KOO[KBB
8595[K else if (count == SEQUENCE_NO)
8596:[K
8597[K [KESCESC[KOO[KBB
8598[K sel_payload <= 1'b1;
8599:[K
8600[K [KESCESC[KOO[KBB
8601[K end
8602:[K
8603[K [KESCESC[KOO[KBB
8604[K busy <= 1'b1;
8605:[K
8606[K [KESCESC[KOO[KBB
8607[K end
8608:[K
8609[K [KESCESC[KOO[KBB
8610[K else if (count == 'h0)
8611:[K
8612[K [KESCESC[KOO[KBB
8613[K busy <= 1'b0;
8614:[K
8615[K [KESCESC[KOO[KBB
8616[K end
8617:[K
8618[K [KESCESC[KOO[KBB
8619[K
8620:[K
8621[K [KESCESC[KOO[KBB
8622[K assign data = sel_payload ? payload : header;
8623:[K
8624[K [KESCESC[KOO[KBB
8625[K
8626:[K
8627[K [KESCESC[KOO[KBB
8628[K
8629:[K
8630[K [KESCESC[KOO[KBB
8631[K
8632:[K
8633[K [KESCESC[KOO[KBB
8634[K // =================================
8635:[K
8636[K [KESCESC[KOO[KBB
8637[K // Muxes to work out what data to transmit
8638:[K
8639[K [KESCESC[KOO[KBB
8640[K
8641:[K
8642[K [KESCESC[KOO[KBB
8643[K always @*
8644:[K
8645[K [KESCESC[KOO[KBB
8646[K begin
8647:[K
8648[K [KESCESC[KOO[KBB
8649[K case (count)
8650:[K
8651[K [KESCESC[KOO[KBB
8652[K //DA_HI : header_nxt = 32'h 00_ca_fe_00;
8653:[K
8654[K [KESCESC[KOO[KBB
8655[K DA_LO_SA_HI : header_nxt = {8'h 01, 5'd0, port, 16'h 00_ca};
8656:[K
8657[K [KESCESC[KOO[KBB
8658[K SA_LO : header_nxt = {24'h fe_00_00, 5'd0, port};
8659:[K
8660[K [KESCESC[KOO[KBB
8661[K SIZE_PATTERN: header_nxt = {4'hf, 1'b0, pkt_size, 8'd0, {(8 - NUM_PATTERNS){1'b0}}, pattern};
8662:[K
8663[K [KESCESC[KOO[KBB
8664[K default : header_nxt = 32'h 00_ca_fe_00;
8665:[K
8666[K [KESCESC[KOO[KBB
8667[K endcase
8668:[K
8669[K [KESCESC[KOO[KBB
8670[K end
8671:[K
8672[K [KESCESC[KOO[KBB
8673[K
8674:[K
8675[K [KESCESC[KOO[KBB
8676[K always @*
8677:[K
8678[K [KESCESC[KOO[KBB
8679[K begin
8680:[K
8681[K [KESCESC[KOO[KBB
8682[K case (pattern)
8683:[K
8684[K [KESCESC[KOO[KBB
8685[K ALL_0_PATTERN : payload = 32'h 00000000;
8686:[K
8687[K [KESCESC[KOO[KBB
8688[K ALL_1_PATTERN : payload = 32'h ffffffff;
8689:[K
8690[K [KESCESC[KOO[KBB
8691[K ALT_01_PATTERN : payload = 32'h 55555555;
8692:[K
8693[K [KESCESC[KOO[KBB
8694[K ALT_10_PATTERN : payload = 32'h aaaaaaaa;
8695:[K
8696[K [KESCESC[KOO[KBB
8697[K default : payload = rand_data;
8698:[K
8699[K [KESCESC[KOO[KBB
8700[K endcase
8701:[K
8702[K [KESCESC[KOO[KBB
8703[K end
8704:[K
8705[K [KESCESC[KOO[KBB
8706[K
8707:[K
8708[K [KESCESC[KOO[KBB
8709[K
8710:[K
8711[K [KESCESC[KOO[KBB
8712[K
8713:[K
8714[K [KESCESC[KOO[KBB
8715[K // =================================
8716:[K
8717[K [KESCESC[KOO[KBB
8718[K // LFSR to generate random patterns
8719:[K
8720[K [KESCESC[KOO[KBB
8721[K //
8722:[K
8723[K [KESCESC[KOO[KBB
8724[K // The LFSR should only progress when we are generating a random pattern at
8725:[K
8726[K [KESCESC[KOO[KBB
8727[K // only when we are in the payload section.
8728:[K
8729[K [KESCESC[KOO[KBB
8730[K //
8731:[K
8732[K [KESCESC[KOO[KBB
8733[K // The first word should actually be repeated twice in the payload to allow
8734:[K
8735[K [KESCESC[KOO[KBB
8736[K // the receiver to start an identical LFSR
8737:[K
8738[K [KESCESC[KOO[KBB
8739[K lfsr32 patgen (
8740:[K
8741[K [KESCESC[KOO[KBB
8742[K .val (rand_data),
8743:[K
8744[K [KESCESC[KOO[KBB
8745[K .rd (pattern == RANDOM_PATTERN && rd_en && enable_lfsr),
8746:[K
8747[K [KESCESC[KOO[KBB
8748[K .seed (seq_no),
8749:[K
8750[K [KESCESC[KOO[KBB
8751[K .reset (reset || !enable_lfsr),
8752:[K
8753[K [KESCESC[KOO[KBB
8754[K .clk (clk)
8755:[K
8756[K [KESCESC[KOO[KBB
8757[K );
8758:[K
8759[K [KESCESC[KOO[KBB
8760[K
8761:[K
8762[K [KESCESC[KOO[KBB
8763[Kendmodule // phy_test_pktgen
8764[7m(END) [27m[K
8765[K [KESCESC[KOO[KBB
8766[K
8767[K[7m(END) [27m[K
8768[K [KESCESC[KOO[KBB
8769[K
8770[K[7m(END) [27m[K
8771[K [KESCESC[KOO[KBB
8772[K
8773[K[7m(END) [27m[K
8774[K [KESCESC[KOO[KBB
8775[K
8776[K[7m(END) [27m[K
8777[K [KESCESC[KOO[KBB
8778[K
8779[K[7m(END) [27m[K
8780[K [KESCESC[KOO[KBB
8781[K
8782[K[7m(END) [27m[K
8783[K [KESCESC[KOO[KBB
8784[K
8785[K[7m(END) [27m[K
8786[K [KESCESC[KOO[KBB
8787[K
8788[K[7m(END) [27m[K
8789[K [KESCESC[KOO[KBB
8790[K
8791[K[7m(END) [27m[K
8792[K [KESCESC[KOO[KBB
8793[K
8794[K[7m(END) [27m[K
8795[K [KESCESC[KOO[KAA
8796[K[HM // =================================
8797[44;1H
8798[K:[K
8799[K [KESCESC[KOO[KBB
8800[Kendmodule // phy_test_pktgen
8801[7m(END) [27m[K
8802[K [KESCESC[KOO[KAA
8803[K[HM // =================================
8804[44;1H
8805[K:[K
8806[K [KESCESC[KOO[KAA
8807[K[HM
8808[44;1H
8809[K:[K
8810[K [KESCESC[KOO[KAA
8811[K[HM
8812[44;1H
8813[K:[K
8814[K [KESCESC[KOO[KAA
8815[K[HM
8816[44;1H
8817[K:[K
8818[K [KESCESC[KOO[KAA
8819[K[HM assign data = sel_payload ? payload : header;
8820[44;1H
8821[K:[K
8822[K [KESCESC[KOO[KAA
8823[K[HM
8824[44;1H
8825[K:[K
8826[K [KESCESC[KOO[KAA
8827[K[HM end
8828[44;1H
8829[K:[K
8830[K [KESCESC[KOO[KAA
8831[K[HM busy <= 1'b0;
8832[44;1H
8833[K:[K
8834[K [KESCESC[KOO[KAA
8835[K[HM else if (count == 'h0)
8836[44;1H
8837[K:[K
8838[K [KESCESC[KOO[KAA
8839[K[HM end
8840[44;1H
8841[K:[K
8842[K [KESCESC[KOO[KAA
8843[K[HM busy <= 1'b1;
8844[44;1H
8845[K:[K
8846[K [KESCESC[KOO[KAA
8847[K[HM end
8848[44;1H
8849[K:[K
8850[K [KESCESC[KOO[KAA
8851[K[HM sel_payload <= 1'b1;
8852[44;1H
8853[K:[K
8854[K [KESCESC[KOO[KAA
8855[K[HM else if (count == SEQUENCE_NO)
8856[44;1H
8857[K:[K
8858[K [KESCESC[KOO[KAA
8859[K[HM sel_payload <= 1'b0;
8860[44;1H
8861[K:[K
8862[K [KESCESC[KOO[KAA
8863[K[HM if (count == 'h0)
8864[44;1H
8865[K:[K
8866[K [KESCESC[KOO[KAA
8867[K[HM done <= 1'b0;
8868[44;1H
8869[K:[K
8870[K [KESCESC[KOO[KAA
8871[K[HM ctrl <= 'h0;
8872[44;1H
8873[K:[K
8874[K [KESCESC[KOO[KAA
8875[K[HM header <= header_nxt;
8876[44;1H
8877[K:[K
8878[K [KESCESC[KOO[KAA
8879[K[HM count <= count + 'h1;
8880[44;1H
8881[K:[K
8882[K [KESCESC[KOO[KAA
8883[K[HM // counter but don't touch the pattern
8884[44;1H
8885[K:[K
8886[K [KESCESC[KOO[KAA
8887[K[HM // If we are not on the last word then we should increment the
8888[44;1H
8889[K:[K
8890[K [KESCESC[KOO[KAA
8891[K[HM
8892[44;1H
8893[K:[K
8894[K [KESCESC[KOO[KAA
8895[K[HM enable_lfsr <= 1'b0;
8896[44;1H
8897[K:[K
8898[K [KESCESC[KOO[KAA
8899[K[HM else if (count == 'h0)
8900[44;1H
8901[K:[K
8902[K [KESCESC[KOO[KAA
8903[K[HM enable_lfsr <= 1'b1;
8904[44;1H
8905[K:[K
8906[K [KESCESC[KOO[KAA
8907[K[HM if (count == START_LFSR)
8908[44;1H
8909[K:[K
8910[K [KESCESC[KOO[KAA
8911[K[HM // Enable the LFSR if appropriate
8912[44;1H
8913[K:[K
8914[K [KESCESC[KOO[KAA
8915[K[HM
8916[44;1H
8917[K:[K
8918[K [KESCESC[KOO[KAA
8919[K[HM end
8920[44;1H
8921[K:[K
8922[K [KESCESC[KOO[KAA
8923[K[HM endcase
8924[44;1H
8925[K:[K
8926[K [KESCESC[KOO[KAA
8927[K[HM 2'd3 : final_ctrl <= 4'b0010;
8928[44;1H
8929[K:[K
8930[K [KESCESC[KOO[KAA
8931[K[HM 2'd2 : final_ctrl <= 4'b0100;
8932[44;1H
8933[K:[K
8934[K [KESCESC[KOO[KAA
8935[K[HM 2'd1 : final_ctrl <= 4'b1000;
8936[44;1H
8937[K:[K
8938[K [KESCESC[KOO[KAA
8939[K[HM 2'd0 : final_ctrl <= 4'b0001;
8940[44;1H
8941[K:[K
8942[K [KESCESC[KOO[KAA
8943[K[HM case (pkt_size[1:0])
8944[44;1H
8945[K:[K
8946[K [KESCESC[KOO[KAA
8947[K[HM // Calculate the control bits for the final word
8948[44;1H
8949[K:[K
8950[K [KESCESC[KOO[KAA
8951[K[HM
8952[44;1H
8953[K:[K
8954[K [KESCESC[KOO[KAA
8955[K[HM num_words <= pkt_size[10:2] + (|pkt_size[1:0]);
8956[44;1H
8957[K:[K
8958[K [KESCESC[KOO[KAA
8959[K[HM // Work out how many words we expect to send
8960[44;1H
8961[K:[K
8962[K [KESCESC[KOO[KAA
8963[K[HM if (count == SIZE_PATTERN) begin
8964[44;1H
8965[K:[K
8966[K [KESCESC[KOO[KAA
8967[K[HM // on the appropriate word
8968[44;1H
8969[K:[K
8970[K [KESCESC[KOO[KAA
8971[K[HM // Record the size and pattern if we're
8972[44;1H
8973[K:[K
8974[K [KESCESC[KOO[KAA
8975[K[HM else begin
8976[44;1H
8977[K:[K
8978[K [KESCESC[KOO[KAA
8979[K[HM end
8980[44;1H
8981[K:[K
8982[K [KESCESC[KOO[KAA
8983[K[HM header <= header_nxt;
8984[44;1H
8985[K:[K
8986[K [KESCESC[KOO[KAA
8987[K[HM sel_payload <= 1'b1;
8988[44;1H
8989[K:[K
8990[K [KESCESC[KOO[KAA
8991[K[HM done <= 1'b1;
8992[44;1H
8993[K:[K
8994[K [KESCESC[KOO[KAA
8995[K[HM ctrl <= final_ctrl;
8996[44;1H
8997[K:[K
8998[K [KESCESC[KOO[KAA
8999[K[HM num_words <= {9{1'b1}};
9000[44;1H
9001[K:[K
9002[K [KESCESC[KOO[KAA
9003[K[HM final_ctrl <= 4'b0000;
9004[44;1H
9005[K:[K
9006[K [KESCESC[KOO[KAA
9007[K[HM count <= 'h0;
9008[44;1H
9009[K:[K
9010[K [KESCESC[KOO[KAA
9011[K[HM // have been processed yet
9012[44;1H
9013[K:[K
9014[K [KESCESC[KOO[KAA
9015[K[HM // Don't reset the LFSR here as the output may not
9016[44;1H
9017[K:[K
9018[K [KESCESC[KOO[KAA
9019[K[HM //
9020[44;1H
9021[K:[K
9022[K [KESCESC[KOO[KAA
9023[K[HM // counter and move to the next pattern
9024[44;1H
9025[K:[K
9026[K [KESCESC[KOO[KAA
9027[K[HM // If we are on the last word we should reset the
9028[44;1H
9029[K:[K
9030[K [KESCESC[KOO[KAA
9031[K[HM if (last_word) begin
9032[44;1H
9033[K:[K
9034[K [KESCESC[KOO[KAA
9035[K[HM else if (rd_en) begin
9036[44;1H
9037[K:[K
9038[K [KESCESC[KOO[KAA
9039[K[HM end
9040[44;1H
9041[K:[K
9042[K [KESCESC[KOO[KAA
9043[K[HM header <= 'h0;
9044[44;1H
9045[K:[K
9046[K [KESCESC[KOO[KAA
9047[K[HM sel_payload <= 1'b0;
9048[44;1H
9049[K:[K
9050[K [KESCESC[KOO[KAA
9051[K[HM busy <= 1'b0;
9052[44;1H
9053[K:[K
9054[K [KESCESC[KOO[KAA
9055[K[HM done <= 1'b0;
9056[44;1H
9057[K:[K
9058[K [KESCESC[KOO[KAA
9059[K[HM ctrl <= 'h0;
9060[44;1H
9061[K:[K
9062[K [KESCESC[KOO[KAA
9063[K[HM num_words <= {9{1'b1}};
9064[44;1H
9065[K:[K
9066[K [KESCESC[KOO[KAA
9067[K[HM final_ctrl <= 4'b0000;
9068[44;1H
9069[K:[K
9070[K [KESCESC[KOO[KAA
9071[K[HM enable_lfsr <= 1'b0;
9072[44;1H
9073[K:[K
9074[K [KESCESC[KOO[KAA
9075[K[HM count <= 'h0;
9076[44;1H
9077[K:[K
9078[K [KESCESC[KOO[KAA
9079[K[HM if (reset) begin
9080[44;1H
9081[K:[K
9082[K [KESCESC[KOO[KAA
9083[K[HM // Track the count and calculate the data to send
9084[44;1H
9085[K:[K
9086[K [KESCESC[KOO[KAA
9087[K[HM begin
9088[44;1H
9089[K:[K
9090[K [KESCESC[KOO[KAA
9091[K[HM always @(posedge clk)
9092[44;1H
9093[K:[K
9094[K [KESCESC[KOO[KAA
9095[K[HM
9096[44;1H
9097[K:[K
9098[K [KESCESC[KOO[KAA
9099[K[HM assign last_word = count == num_words - 1;
9100[44;1H
9101[K:[K
9102[K [KESCESC[KOO[KAA
9103[K[HM // Generate the last word signal
9104[44;1H
9105[K:[K
9106[K [KESCESC[KOO[KAA
9107[K[HM
9108[44;1H
9109[K:[K
9110[K [KESCESC[KOO[KAA
9111[K[HM // Tracks the current word and places data on the output signals
9112[44;1H
9113[K:[K
9114[K [KESCESC[KOO[KAA
9115[K[HM // Main state machine responsible for packet transmission
9116[44;1H
9117[K:[K
9118[K [KESCESC[KOO[KAA
9119[K[HM // =================================
9120[44;1H
9121[K:[K
9122[K [KESCESC[KOO[KAA
9123[K[HM
9124[44;1H
9125[K:[K
9126[K [KESCESC[KOO[KAA
9127[K[HM
9128[44;1H
9129[K:[K
9130[K [KESCESC[KOO[KAA
9131[K[HM
9132[44;1H
9133[K:[K
9134[K [KESCESC[KOO[KAA
9135[K[HM reg sel_payload;
9136[44;1H
9137[K:[K
9138[K [KESCESC[KOO[KAA
9139[K[HM
9140[44;1H
9141[K:[K
9142[K [KESCESC[KOO[KAA
9143[K[HM reg enable_lfsr;
9144[44;1H
9145[K:[K
9146[K [KESCESC[KOO[KAA
9147[K[HM
9148[44;1H
9149[K:[K
9150[K [KESCESC[KOO[KAA
9151[K[HM wire last_word;
9152[44;1H
9153[K:[K
9154[K [KESCESC[KOO[KAA
9155[K[HM reg done_nxt;
9156[44;1H
9157[K:[K
9158[K [KESCESC[KOO[KAA
9159[K[HM
9160[44;1H
9161[K:[K
9162[K [KESCESC[KOO[KAA
9163[K[HM reg [31:0] header;
9164[44;1H
9165[K:[K
9166[K [KESCESC[KOO[KAA
9167[K[HM reg [31:0] payload;
9168[44;1H
9169[K:[K
9170[K [KESCESC[KOO[KAA
9171[K[HM reg [31:0] header_nxt;
9172[44;1H
9173[K:[K
9174[K [KESCESC[KOO[KAA
9175[K[HM wire [31:0] rand_data;
9176[44;1H
9177[K:[K
9178[K [KESCESC[KOO[KAA
9179[K[HM
9180[44;1H
9181[K:[K
9182[K [KESCESC[KOO[KAA
9183[K[HM reg [8:0] count;
9184[44;1H
9185[K:[K
9186[K [KESCESC[KOO[KAA
9187[K[HM
9188[44;1H
9189[K:[K
9190[K [KESCESC[KOO[KAA
9191[K[HM reg [3:0] final_ctrl;
9192[44;1H
9193[K:[K
9194[K [KESCESC[KOO[KAA
9195[K[HM reg [8:0] num_words;
9196[44;1H
9197[K:[K
9198[K [KESCESC[KOO[KAA
9199[K[HM // Packet length related variables
9200[44;1H
9201[K:[K
9202[K [KESCESC[KOO[KAA
9203[K[HM
9204[44;1H
9205[K:[K
9206[K [KESCESC[KOO[KAA
9207[K[HM localparam SEQUENCE_NO = 'd4;
9208[44;1H
9209[K:[K
9210[K [KESCESC[KOO[KAA
9211[K[HM localparam SIZE_PATTERN = 'd3;
9212[44;1H
9213[K:[K
9214[K [KESCESC[KOO[KAA
9215[K[HM localparam SA_LO = 'd2;
9216[44;1H
9217[K:[K
9218[K [KESCESC[KOO[KAA
9219[K[HM localparam DA_LO_SA_HI = 'd1;
9220[44;1H
9221[K:[K
9222[K [KESCESC[KOO[KAA
9223[K[HM localparam DA_HI = 'd0;
9224[44;1H
9225[K:[K
9226[K [KESCESC[KOO[KAA
9227[K[HM // Word locations of various packet components
9228[44;1H
9229[K:[K
9230[K [KESCESC[KOO[KAA
9231[K[HM
9232[44;1H
9233[K:[K
9234[K [KESCESC[KOO[KAA
9235[K[HM localparam START_LFSR = 'd5;
9236[44;1H
9237[K:[K
9238[K [KESCESC[KOO[KAA
9239[K[HM // Count when the LFSR should be enabled
9240[44;1H
9241[K:[K
9242[K [KESCESC[KOO[KAA
9243[K[HM
9244[44;1H
9245[K:[K
9246[K [KESCESC[KOO[KAA
9247[K[HM localparam RANDOM_PATTERN = 5'b10000;
9248[44;1H
9249[K:[K
9250[K [KESCESC[KOO[KAA
9251[K[HM localparam ALT_10_PATTERN = 5'b01000;
9252[44;1H
9253[K:[K
9254[K [KESCESC[KOO[KAA
9255[K[HM localparam ALT_01_PATTERN = 5'b00100;
9256[44;1H
9257[K:[K
9258[K [KESCESC[KOO[KAA
9259[K[HM localparam ALL_1_PATTERN = 5'b00010;
9260[44;1H
9261[K:[K
9262[K [KESCESC[KOO[KAA
9263[K[HM localparam ALL_0_PATTERN = 5'b00001;
9264[44;1H
9265[K:[K
9266[K [KESCESC[KOO[KAA
9267[K[HM // Identify different patters
9268[44;1H
9269[K:[K
9270[K [KESCESC[KOO[KAA
9271[K[HM
9272[44;1H
9273[K:[K
9274[K [KESCESC[KOO[KAA
9275[K[HM );
9276[44;1H
9277[K:[K
9278[K [KESCESC[KOO[KAA
9279[K[HM input clk
9280[44;1H
9281[K:[K
9282[K [KESCESC[KOO[KAA
9283[K[HM input reset,
9284[44;1H
9285[K:[K
9286[K [KESCESC[KOO[KAA
9287[K[HM //--- misc
9288[44;1H
9289[K:[K
9290[K [KESCESC[KOO[KAA
9291[K[HM
9292[44;1H
9293[K:[K
9294[K [KESCESC[KOO[KAA
9295[K[HM output reg done, // Indicates the last word of the packet is being output
9296[44;1H
9297[K:[K
9298[K [KESCESC[KOO[KAA
9299[K[HM output reg busy, // Currently transmitting packets
9300[44;1H
9301[K:[K
9302[K [KESCESC[KOO[KAA
9303[K[HM
9304[44;1H
9305[K:[K
9306[K [KESCESC[KOO[KAA
9307[K[HM input [SEQ_NO_WIDTH - 1:0] seq_no, // Initial sequence number
9308[44;1H
9309[K:[K
9310[K [KESCESC[KOO[KAA
9311[K[HM input [10:0] pkt_size, // Packet size
9312[44;1H
9313[K:[K
9314[K [KESCESC[KOO[KAA
9315[K[HM input [NUM_PATTERNS - 1:0] pattern, // Pattern enable
9316[44;1H
9317[K:[K
9318[K [KESCESC[KOO[KAA
9319[K[HM input [2:0] port, // Source port number
9320[44;1H
9321[K:[K
9322[K [KESCESC[KOO[KAA
9323[K[HM
9324[44;1H
9325[K:[K
9326[K [KESCESC[KOO[KAA
9327[K[HM input rd_en, // Output the next word
9328[44;1H
9329[K:[K
9330[K [KESCESC[KOO[KAA
9331[K[HM output reg [3:0] ctrl,
9332[44;1H
9333[K:[K
9334[K [KESCESC[KOO[KAA
9335[K[HM output [31:0] data,
9336[44;1H
9337[K:[K
9338[K [KESCESC[KOO[KAA
9339[K[HM (
9340[44;1H
9341[K:[K
9342[K [KESCESC[KOO[KAA
9343[K[HM )
9344[44;1H
9345[K:[K
9346[K [KESCESC[KOO[KAA
9347[K[HM SEQ_NO_WIDTH = 32
9348[44;1H
9349[K:[K
9350[K [KESCESC[KOO[KAA
9351[K[HM NUM_PATTERNS = 5,
9352[44;1H
9353[K:[K
9354[K [KESCESC[KOO[KAA
9355[K[HM CPCI_NF2_DATA_WIDTH = 32,
9356[44;1H
9357[K:[K
9358[K [KESCESC[KOO[KAA
9359[K[HMmodule phy_test_pktgen #(parameter
9360[44;1H
9361[K:[K
9362[K [KESCESC[KOO[KAA
9363[K[HM
9364[44;1H
9365[K:[K
9366[K [KESCESC[KOO[KAA
9367[K[HM///////////////////////////////////////////////////////////////////////////////
9368[44;1H
9369[K:[K
9370[K [KESCESC[KOO[KAA
9371[K[HM//
9372[44;1H
9373[K:[K
9374[K [KESCESC[KOO[KAA
9375[K[HM// Note: data is muxed -- not the direct output for a flop
9376[44;1H
9377[K:[K
9378[K [KESCESC[KOO[KAA
9379[K[HM//
9380[44;1H
9381[K:[K
9382[K [KESCESC[KOO[KAA
9383[K[HM// Pattern
9384[44;1H
9385[K:[K
9386[K [KESCESC[KOO[KAA
9387[K[HM// seq_no (or 0)
9388[44;1H
9389[K:[K
9390[K [KESCESC[KOO[KAA
9391[K[HM// Data: 8'b0, pattern (8 bits)
9392[44;1H
9393[K:[K
9394[K [KESCESC[KOO[KAA
9395[K[HM// Length: Length
9396[44;1H
9397[K:[K
9398[K [KESCESC[KOO[KAA
9399[K[HM// SA: 00:ca:fe:00:00:Port
9400[44;1H
9401[K:[K
9402[K [KESCESC[KOO[KAA
9403[K[HM// DA: 00:ca:fe:00:01:Port
9404[44;1H
9405[K:[K
9406[K [KESCESC[KOO[KAA
9407[K[HM//
9408[44;1H
9409[K:[K
9410[K [KESCESC[KOO[KAA
9411[K[HM// only. The packet format is as follows:
9412[44;1H
9413[K:[K
9414[K [KESCESC[KOO[KAA
9415[K[HM// This particular module is responsible for generating packets
9416[44;1H
9417[K:[K
9418[K [KESCESC[KOO[KAA
9419[K[HM//
9420[44;1H
9421[K:[K
9422[K [KESCESC[KOO[KAA
9423[K[HM// Description: Selftest module for Ethernet Phys.
9424[44;1H
9425[K:[K
9426[K [KESCESC[KOO[KAA
9427[K[HM// Project: NetFPGA
9428[44;1H
9429[K:[K
9430[K [KESCESC[KOO[KAA
9431[K[HM// Module: phy_test_pktgen.v
9432[44;1H
9433[K:[K
9434[K [KESCESC[KOO[KAA
9435[K[HM//
9436[44;1H
9437[K:[K
9438[K [KESCESC[KOO[KAA
9439[K[HM// $Id: phy_test_pktgen.v 1794 2007-05-21 01:38:29Z grg $
9440[44;1H
9441[K:[K
9442[K [KESCESC[KOO[KAA
9443[K[HM// vim:set shiftwidth=3 softtabstop=3 expandtab:
9444[44;1H
9445[K:[K
9446[K [KESCESC[KOO[KAA
9447[K[HM///////////////////////////////////////////////////////////////////////////////
9448[44;1H
9449[K:[K
9450[K [KESCESC[KOO[KAA
9451[K
9452[K:[K
9453[K [KESCESC[KOO[KAA
9454[K
9455[K:[K
9456[K [KESCESC[KOO[KAA
9457[K
9458[K:[K
9459[K [KESCESC[KOO[KAA
9460[K
9461[K:[K
9462[K [KESCESC[KOO[KAA
9463[K
9464[K:[K
9465[K [KESCESC[KOO[KAA
9466[K
9467[K:[K
9468[K [KESCESC[KOO[KBB
9469[K );
9470:[K
9471[K [KESCESC[KOO[KBB
9472[K
9473:[K
9474[K [KESCESC[KOO[KBB
9475[K // Identify different patters
9476:[K
9477[K [KESCESC[KOO[KBB
9478[K localparam ALL_0_PATTERN = 5'b00001;
9479:[K
9480[K [KESCESC[KOO[KAA
9481[K[HM//
9482[44;1H
9483[K:[K
9484[K [KESCESC[KOO[KAA
9485[K[HM// $Id: phy_test_pktgen.v 1794 2007-05-21 01:38:29Z grg $
9486[44;1H
9487[K:[K
9488[K [KESCESC[KOO[KAA
9489[K[HM// vim:set shiftwidth=3 softtabstop=3 expandtab:
9490[44;1H
9491[K:[K
9492[K [KESCESC[KOO[KAA
9493[K[HM///////////////////////////////////////////////////////////////////////////////
9494[44;1H
9495[K:[K
9496[K [KESCESC[KOO[KAA
9497[K
9498[K:[K
9499[K [KESCESC[KOO[KAA
9500[K
9501[K:[K
9502[K [KESCESC[KOO[KAA
9503[K
9504[K:[K
9505[K [KESCESC[KOO[KAA
9506[K
9507[K:[K
9508[K [KESCESC[KOO[KBB
9509[K );
9510:[K
9511[K [KESCESC[KOO[KBB
9512[K
9513:[K
9514[K [KESCESC[KOO[KBB
9515[K // Identify different patters
9516:[K
9517[K [KESCESC[KOO[KBB
9518[K localparam ALL_0_PATTERN = 5'b00001;
9519:[K
9520[K [KESCESC[KOO[KBB
9521[K localparam ALL_1_PATTERN = 5'b00010;
9522:[K
9523[K [KESCESC[KOO[KBB
9524[K localparam ALT_01_PATTERN = 5'b00100;
9525:[K
9526[K [KESCESC[KOO[KBB
9527[K localparam ALT_10_PATTERN = 5'b01000;
9528:[K
9529[K [KESCESC[KOO[KBB
9530[K localparam RANDOM_PATTERN = 5'b10000;
9531:[K
9532[K [KESCESC[KOO[KBB
9533[K
9534:[K
9535[K [KESCESC[KOO[KBB
9536[K // Count when the LFSR should be enabled
9537:[K
9538[K [KESCESC[KOO[KBB
9539[K localparam START_LFSR = 'd5;
9540:[K
9541[K [KESCESC[KOO[KBB
9542[K
9543:[K
9544[K [KESCESC[KOO[KBB
9545[K // Word locations of various packet components
9546:[K
9547[K [KESCESC[KOO[KBB
9548[K localparam DA_HI = 'd0;
9549:[K
9550[K [KESCESC[KOO[KBB
9551[K localparam DA_LO_SA_HI = 'd1;
9552:[K
9553[K [KESCESC[KOO[KBB
9554[K localparam SA_LO = 'd2;
9555:[K
9556[K [KESCESC[KOO[KBB
9557[K localparam SIZE_PATTERN = 'd3;
9558:[K
9559[K [KESCESC[KOO[KBB
9560[K localparam SEQUENCE_NO = 'd4;
9561:[K
9562[K [KESCESC[KOO[KBB
9563[K
9564:[K
9565[K [KESCESC[KOO[KBB
9566[K // Packet length related variables
9567:[K
9568[K [KESCESC[KOO[KBB
9569[K reg [8:0] num_words;
9570:[K
9571[K [KESCESC[KOO[KBB
9572[K reg [3:0] final_ctrl;
9573:[K
9574[K [KESCESC[KOO[KBB
9575[K
9576:[K
9577[K [KESCESC[KOO[KBB
9578[K reg [8:0] count;
9579:[K
9580[K [KESCESC[KOO[KBB
9581[K
9582:[K
9583[K [KESCESC[KOO[KBB
9584[K wire [31:0] rand_data;
9585:[K
9586[K [KESCESC[KOO[KBB
9587[K reg [31:0] header_nxt;
9588:[K
9589[K [KESCESC[KOO[KBB
9590[K reg [31:0] payload;
9591:[K
9592[K [KESCESC[KOO[KBB
9593[K reg [31:0] header;
9594:[K
9595[K [KESCESC[KOO[KBB
9596[K
9597:[K
9598[K [KESCESC[KOO[KBB
9599[K reg done_nxt;
9600:[K
9601[K [KESCESC[KOO[KBB
9602[K wire last_word;
9603:[K
9604[K [KESCESC[KOO[KBB
9605[K
9606:[K
9607[K [KESCESC[KOO[KBB
9608[K reg enable_lfsr;
9609:[K
9610[K [KESCESC[KOO[KBB
9611[K
9612:[K
9613[K [KESCESC[KOO[KBB
9614[K reg sel_payload;
9615:[K
9616[K [KESCESC[KOO[KBB
9617[K
9618:[K
9619[K [KESCESC[KOO[KBB
9620[K
9621:[K
9622[K [KESCESC[KOO[KBB
9623[K
9624:[K
9625[K [KESCESC[KOO[KBB
9626[K // =================================
9627:[K
9628[K [KESCESC[KOO[KBB
9629[K // Main state machine responsible for packet transmission
9630:[K
9631[K [KESCESC[KOO[KBB
9632[K // Tracks the current word and places data on the output signals
9633:[K
9634[K [KESCESC[KOO[KBB
9635[K
9636:[K
9637[K [KESCESC[KOO[KBB
9638[K // Generate the last word signal
9639:[K
9640[K [KESCESC[KOO[KBB
9641[K assign last_word = count == num_words - 1;
9642:[K
9643[K [KESCESC[KOO[KBB
9644[K
9645:[K
9646[K [KESCESC[KOO[KBB
9647[K always @(posedge clk)
9648:[K
9649[K [KESCESC[KOO[KBB
9650[K begin
9651:[K
9652[K [KESCESC[KOO[KBB
9653[K // Track the count and calculate the data to send
9654:[K
9655[K [KESCESC[KOO[KBB
9656[K if (reset) begin
9657:[K
9658[K [KESCESC[KOO[KBB
9659[K count <= 'h0;
9660:[K
9661[K [KESCESC[KOO[KBB
9662[K enable_lfsr <= 1'b0;
9663:[K
9664[K [KESCESC[KOO[KBB
9665[K final_ctrl <= 4'b0000;
9666:[K
9667[K [KESCESC[KOO[KBB
9668[K num_words <= {9{1'b1}};
9669:[K
9670[K [KESCESC[KOO[KBB
9671[K ctrl <= 'h0;
9672:[K
9673[K [KESCESC[KOO[KBB
9674[K done <= 1'b0;
9675:[K
9676[K [KESCESC[KOO[KBB
9677[K busy <= 1'b0;
9678:[K
9679[K [KESCESC[KOO[KBB
9680[K sel_payload <= 1'b0;
9681:[K
9682[K [KESCESC[KOO[KBB
9683[K header <= 'h0;
9684:[K
9685[K [KESCESC[KOO[KBB
9686[K end
9687:[K
9688[K [KESCESC[KOO[KBB
9689[K else if (rd_en) begin
9690:[K
9691[K [KESCESC[KOO[KBB
9692[K if (last_word) begin
9693:[K
9694[K [KESCESC[KOO[KBB
9695[K // If we are on the last word we should reset the
9696:[K
9697[K [KESCESC[KOO[KBB
9698[K // counter and move to the next pattern
9699:[K
9700[K [KESCESC[KOO[KBB
9701[K //
9702:[K
9703[K [KESCESC[KOO[KBB
9704[K // Don't reset the LFSR here as the output may not
9705:[K
9706[K [KESCESC[KOO[KBB
9707[K // have been processed yet
9708:[K
9709[K [KESCESC[KOO[KBB
9710[K count <= 'h0;
9711:[K
9712[K [KESCESC[KOO[KBB
9713[K final_ctrl <= 4'b0000;
9714:[K
9715[K [KESCESC[KOO[KBB
9716[K num_words <= {9{1'b1}};
9717:[K
9718[K [KESCESC[KOO[KBB
9719[K ctrl <= final_ctrl;
9720:[K
9721[K [KESCESC[KOO[KBB
9722[K done <= 1'b1;
9723:[K
9724[K [KESCESC[KOO[KBB
9725[K sel_payload <= 1'b1;
9726:[K
9727[K [KESCESC[KOO[KBB
9728[K header <= header_nxt;
9729:[K
9730[K [KESCESC[KOO[KBB
9731[K end
9732:[K
9733[K [KESCESC[KOO[KBB
9734[K else begin
9735:[K
9736[K [KESCESC[KOO[KBB
9737[K // Record the size and pattern if we're
9738:[K
9739[K [KESCESC[KOO[KBB
9740[K // on the appropriate word
9741:[K
9742[K [KESCESC[KOO[KBB
9743[K if (count == SIZE_PATTERN) begin
9744:[K
9745[K [KESCESC[KOO[KBB
9746[K // Work out how many words we expect to send
9747:[K
9748[K [KESCESC[KOO[KBB
9749[K num_words <= pkt_size[10:2] + (|pkt_size[1:0]);
9750:[K
9751[K [KESCESC[KOO[KBB
9752[K
9753:[K
9754[K [KESCESC[KOO[KBB
9755[K // Calculate the control bits for the final word
9756:[K
9757[K [KESCESC[KOO[KBB
9758[K case (pkt_size[1:0])
9759:[K
9760[K [KESCESC[KOO[KBB
9761[K 2'd0 : final_ctrl <= 4'b0001;
9762:[K
9763[K [KESCESC[KOO[KBB
9764[K 2'd1 : final_ctrl <= 4'b1000;
9765:[K
9766[K [KESCESC[KOO[KBB
9767[K 2'd2 : final_ctrl <= 4'b0100;
9768:[K
9769[K [KESCESC[KOO[KBB
9770[K 2'd3 : final_ctrl <= 4'b0010;
9771:[K
9772[K [KESCESC[KOO[KBB
9773[K endcase
9774:[K
9775[K [KESCESC[KOO[KBB
9776[K end
9777:[K
9778[K [KESCESC[KOO[KBB
9779[K
9780:[K
9781[K [KESCESC[KOO[KBB
9782[K // Enable the LFSR if appropriate
9783:[K
9784[K [KESCESC[KOO[KBB
9785[K if (count == START_LFSR)
9786:[K
9787[K [KESCESC[KOO[KBB
9788[K enable_lfsr <= 1'b1;
9789:[K
9790[K [KESCESC[KOO[KBB
9791[K else if (count == 'h0)
9792:[K
9793[K [KESCESC[KOO[KBB
9794[K enable_lfsr <= 1'b0;
9795:[K
9796[K [KESCESC[KOO[KBB
9797[K
9798:[K
9799[K [KESCESC[KOO[KBB
9800[K // If we are not on the last word then we should increment the
9801:[K
9802[K [KESCESC[KOO[KBB
9803[K // counter but don't touch the pattern
9804:[K
9805[K [KESCESC[KOO[KBB
9806[K count <= count + 'h1;
9807:[K
9808[K [KESCESC[KOO[KBB
9809[K header <= header_nxt;
9810:[K
9811[K [KESCESC[KOO[KBB
9812[K ctrl <= 'h0;
9813:[K
9814[K [KESCESC[KOO[KBB
9815[K done <= 1'b0;
9816:[K
9817[K [KESCESC[KOO[KBB
9818[K if (count == 'h0)
9819:[K
9820[K [KESCESC[KOO[KBB
9821[K sel_payload <= 1'b0;
9822:[K
9823[K [KESCESC[KOO[KBB
9824[K else if (count == SEQUENCE_NO)
9825:[K
9826[K [KESCESC[KOO[KBB
9827[K sel_payload <= 1'b1;
9828:[K
9829[K [KESCESC[KOO[KBB
9830[K end
9831:[K
9832[K [KESCESC[KOO[KBB
9833[K busy <= 1'b1;
9834:[K
9835[K [KESCESC[KOO[KBB
9836[K end
9837:[K
9838[K [KESCESC[KOO[KBB
9839[K else if (count == 'h0)
9840:[K
9841[K [KESCESC[KOO[KBB
9842[K busy <= 1'b0;
9843:[K
9844[K [KESCESC[KOO[KBB
9845[K end
9846:[K
9847[K [KESCESC[KOO[KBB
9848[K
9849:[K
9850[K [KESCESC[KOO[KBB
9851[K assign data = sel_payload ? payload : header;
9852:[K
9853[K [KESCESC[KOO[KBB
9854[K
9855:[K
9856[K [KESCESC[KOO[KBB
9857[K
9858:[K
9859[K [KESCESC[KOO[KBB
9860[K
9861:[K
9862[K [KESCESC[KOO[KBB
9863[K // =================================
9864:[K
9865[K [KESCESC[KOO[KBB
9866[K // Muxes to work out what data to transmit
9867:[K
9868[K [KESCESC[KOO[KBB
9869[K
9870:[K
9871[K [KESCESC[KOO[KBB
9872[K always @*
9873:[K
9874[K [KESCESC[KOO[KBB
9875[K begin
9876:[K
9877[K [KESCESC[KOO[KBB
9878[K case (count)
9879:[K
9880[K [KESCESC[KOO[KBB
9881[K //DA_HI : header_nxt = 32'h 00_ca_fe_00;
9882:[K
9883[K [KESCESC[KOO[KBB
9884[K DA_LO_SA_HI : header_nxt = {8'h 01, 5'd0, port, 16'h 00_ca};
9885:[K
9886[K [KESCESC[KOO[KBB
9887[K SA_LO : header_nxt = {24'h fe_00_00, 5'd0, port};
9888:[K
9889[K [KESCESC[KOO[KBB
9890[K SIZE_PATTERN: header_nxt = {4'hf, 1'b0, pkt_size, 8'd0, {(8 - NUM_PATTERNS){1'b0}}, pattern};
9891:[K
9892[K [KESCESC[KOO[KBB
9893[K default : header_nxt = 32'h 00_ca_fe_00;
9894:[K
9895[K [KESCESC[KOO[KBB
9896[K endcase
9897:[K
9898[K [KESCESC[KOO[KBB
9899[K end
9900:[K
9901[K [KESCESC[KOO[KBB
9902[K
9903:[K
9904[K [KESCESC[KOO[KBB
9905[K always @*
9906:[K
9907[K [KESCESC[KOO[KBB
9908[K begin
9909:[K
9910[K [KESCESC[KOO[KBB
9911[K case (pattern)
9912:[K
9913[K [KESCESC[KOO[KBB
9914[K ALL_0_PATTERN : payload = 32'h 00000000;
9915:[K
9916[K [KESCESC[KOO[KBB
9917[K ALL_1_PATTERN : payload = 32'h ffffffff;
9918:[K
9919[K [KESCESC[KOO[KBB
9920[K ALT_01_PATTERN : payload = 32'h 55555555;
9921:[K
9922[K [KESCESC[KOO[KBB
9923[K ALT_10_PATTERN : payload = 32'h aaaaaaaa;
9924:[K
9925[K [KESCESC[KOO[KBB
9926[K default : payload = rand_data;
9927:[K
9928[K [KESCESC[KOO[KBB
9929[K endcase
9930:[K
9931[K [KESCESC[KOO[KBB
9932[K end
9933:[K
9934[K [KESCESC[KOO[KBB
9935[K
9936:[K
9937[K [KESCESC[KOO[KBB
9938[K
9939:[K
9940[K [KESCESC[KOO[KBB
9941[K
9942:[K
9943[K [KESCESC[KOO[KBB
9944[K // =================================
9945:[K
9946[K [KESCESC[KOO[KBB
9947[K // LFSR to generate random patterns
9948:[K
9949[K [KESCESC[KOO[KBB
9950[K //
9951:[K
9952[K [KESCESC[KOO[KBB
9953[K // The LFSR should only progress when we are generating a random pattern at
9954:[K
9955[K [KESCESC[KOO[KBB
9956[K // only when we are in the payload section.
9957:[K
9958[K [KESCESC[KOO[KBB
9959[K //
9960:[K
9961[K [KESCESC[KOO[KBB
9962[K // The first word should actually be repeated twice in the payload to allow
9963:[K
9964[K [KESCESC[KOO[KBB
9965[K // the receiver to start an identical LFSR
9966:[K
9967[K [KESCESC[KOO[KBB
9968[K lfsr32 patgen (
9969:[K
9970[K [KESCESC[KOO[KBB
9971[K .val (rand_data),
9972:[K
9973[K [KESCESC[KOO[KBB
9974[K .rd (pattern == RANDOM_PATTERN && rd_en && enable_lfsr),
9975:[K
9976[K [KESCESC[KOO[KBB
9977[K .seed (seq_no),
9978:[K
9979[K [KESCESC[KOO[KBB
9980[K .reset (reset || !enable_lfsr),
9981:[K
9982[K [KESCESC[KOO[KBB
9983[K .clk (clk)
9984:[K
9985[K [KESCESC[KOO[KBB
9986[K );
9987:[K
9988[K [KESCESC[KOO[KBB
9989[K
9990:[K
9991[K [KESCESC[KOO[KBB
9992[Kendmodule // phy_test_pktgen
9993[7m(END) [27m[K
9994[K [KESCESC[KOO[KBB
9995[K
9996[K[7m(END) [27m[K
9997[K [KESCESC[KOO[KBB
9998[K
9999[K[7m(END) [27m[K
10000[K [KESCESC[KOO[KBB
10001[K
10002[K[7m(END) [27m[K
10003[K [KESCESC[KOO[KBB
10004[K
10005[K[7m(END) [27m[K
10006[K [KESCESC[KOO[KBB
10007[K
10008[K[7m(END) [27m[K
10009[K [KESCESC[KOO[KBB
10010[K
10011[K[7m(END) [27m[K
10012[K [KESCESC[KOO[KBB
10013[K
10014[K[7m(END) [27m[K
10015[K [KESCESC[KOO[KBB
10016[K
10017[K[7m(END) [27m[K
10018[K [KESCESC[KOO[KBB
10019[K
10020[K[7m(END) [27m[K
10021[K [KESCESC[KOO[KBB
10022[K
10023[K[7m(END) [27m[K
10024[K [KESCESC[KOO[KBB
10025[K
10026[K[7m(END) [27m[K
10027[K [KESCESC[KOO[KBB
10028[K
10029[K[7m(END) [27m[K
10030[K [KESCESC[KOO[KBB
10031[K
10032[K[7m(END) [27m[K
10033[K [KESCESC[KOO[KBB
10034[K
10035[K[7m(END) [27m[K
10036[K [KESCESC[KOO[KBB
10037[K
10038[K[7m(END) [27m[K
10039[K [KESCESC[KOO[KBB
10040[K
10041[K[7m(END) [27m[K
10042[K[?1l>[?1049l]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$ less phy_test_pktcmp.v
10043[?1049h[?1h=
10044///////////////////////////////////////////////////////////////////////////////
10045// vim:set shiftwidth=3 softtabstop=3 expandtab:
10046// $Id: phy_test_pktcmp.v 1799 2007-05-22 03:18:34Z grg $
10047//
10048// Module: phy_test_pktgen.v
10049// Project: NetFPGA
10050// Description: Selftest module for Ethernet Phys.
10051//
10052// This particular module is responsible for comparing packets
10053// that arrive on an interface
10054//
10055// Note: There is one extra word received after the last data word that
10056// indicates success/failure (eg. FCS error)
10057//
10058///////////////////////////////////////////////////////////////////////////////
10059
10060module phy_test_pktcmp #(parameter
10061 CPCI_NF2_DATA_WIDTH = 32,
10062 NUM_PATTERNS = 5,
10063 SEQ_NO_WIDTH = 32
10064 )
10065 (
10066 //--- sigs to/from nf2_mac_grp for RX Fifos (ingress)
10067 input rx_almost_empty,
10068 input [35:0] rx_data,
10069 output reg rx_rd_en,
10070
10071 //--- sigs to/from phy_test to coordinate the tests
10072 output [2:0] port, // Source port number
10073 output [NUM_PATTERNS - 1:0] pattern, // Pattern number being received
10074
10075 input [10:0] pkt_size, // Packet size
10076 input [NUM_PATTERNS - 1:0] pat_en, // Pattern enable
10077
10078 output reg [SEQ_NO_WIDTH - 1:0] seq_no, // Sequence number of received packet
10079
10080 output reg locked, // Is the state machine currently locked
10081
10082 output busy, // Currently receiving a packets
10083 output reg done, // Pulses when a packet has been recieved
10084 output reg bad, // Indicates whether the received packet was good
10085 // and expected
10086
10087[7mphy_test_pktcmp.v [27m[K
10088[K [KESCESC[KOO[KBB
10089[K // RX log interface
10090:[K
10091[K [KESCESC[KOO[KBB
10092[K output reg [31:0] log_rx_data,
10093:[K
10094[K [KESCESC[KOO[KBB
10095[K output reg [31:0] log_exp_data,
10096:[K
10097[K [KESCESC[KOO[KBB
10098[K output reg [8:0] log_addr,
10099:[K
10100[K [KESCESC[KOO[KBB
10101[K output reg log_data_wr,
10102:[K
10103[K [KESCESC[KOO[KBB
10104[K output reg log_done,
10105:[K
10106[K [KESCESC[KOO[KAA
10107[K[HM// Project: NetFPGA
10108[44;1H
10109[K:[K
10110[K [KESCESC[KOO[KAA
10111[K[HM// Module: phy_test_pktgen.v
10112[44;1H
10113[K:[K
10114[K [KESCESC[KOO[KAA
10115[K[HM//
10116[44;1H
10117[K:[K
10118[K [KESCESC[KOO[KBB
10119[K output reg [8:0] log_addr,
10120:[K
10121[K [KESCESC[KOO[KBB
10122[K output reg log_data_wr,
10123:[K
10124[K [KESCESC[KOO[KBB
10125[K output reg log_done,
10126:[K
10127[K [KESCESC[KOO[KBB
10128[K output reg log_hold,
10129:[K
10130[K [KESCESC[KOO[KBB
10131[K
10132:[K
10133[K [KESCESC[KOO[KBB
10134[K
10135:[K
10136[K [KESCESC[KOO[KBB
10137[K //--- misc
10138:[K
10139[K [KESCESC[KOO[KBB
10140[K input reset,
10141:[K
10142[K [KESCESC[KOO[KBB
10143[K input clk
10144:[K
10145[K [KESCESC[KOO[KBB
10146[K );
10147:[K
10148[K [KESCESC[KOO[KBB
10149[K
10150:[K
10151[K [KESCESC[KOO[KBB
10152[K // Lose lock after 125,000 clock ticks (1ms/2ms depending on core clock
10153:[K
10154[K [KESCESC[KOO[KBB
10155[K // freq)
10156:[K
10157[K [KESCESC[KOO[KBB
10158[K localparam LOSE_LOCK_COUNT = 'd125000;
10159:[K
10160[K [KESCESC[KOO[KBB
10161[K
10162:[K
10163[K [KESCESC[KOO[KBB
10164[K // Identify different patters
10165:[K
10166[K [KESCESC[KOO[KBB
10167[K localparam ALL_0_PATTERN = 5'b00001;
10168:[K
10169[K [KESCESC[KOO[KBB
10170[K localparam ALL_1_PATTERN = 5'b00010;
10171:[K
10172[K [KESCESC[KOO[KBB
10173[K localparam ALT_01_PATTERN = 5'b00100;
10174:[K
10175[K [KESCESC[KOO[KBB
10176[K localparam ALT_10_PATTERN = 5'b01000;
10177:[K
10178[K [KESCESC[KOO[KBB
10179[K localparam RANDOM_PATTERN = 5'b10000;
10180:[K
10181[K [KESCESC[KOO[KBB
10182[K
10183:[K
10184[K [KESCESC[KOO[KBB
10185[K // Count when the LFSR should be enabled
10186:[K
10187[K [KESCESC[KOO[KBB
10188[K localparam START_LFSR = 4;
10189:[K
10190[K [KESCESC[KOO[KBB
10191[K
10192:[K
10193[K [KESCESC[KOO[KBB
10194[K // Word locations of various packet components
10195:[K
10196[K [KESCESC[KOO[KBB
10197[K localparam DA_HI = 'd0;
10198:[K
10199[K [KESCESC[KOO[KBB
10200[K localparam DA_LO_SA_HI = 'd1;
10201:[K
10202[K [KESCESC[KOO[KBB
10203[K localparam SA_LO = 'd2;
10204:[K
10205[K [KESCESC[KOO[KBB
10206[K localparam SIZE_PATTERN = 'd3;
10207:[K
10208[K [KESCESC[KOO[KBB
10209[K localparam SEQUENCE_NO = 'd4;
10210:[K
10211[K [KESCESC[KOO[KBB
10212[K localparam EOP = ~{10'd0};
10213:[K
10214[K [KESCESC[KOO[KBB
10215[K
10216:[K
10217[K [KESCESC[KOO[KBB
10218[K
10219:[K
10220[K [KESCESC[KOO[KBB
10221[K // Counter to identify when to leave the lock state
10222:[K
10223[K [KESCESC[KOO[KBB
10224[K reg [19:0] lock_count;
10225:[K
10226[K [KESCESC[KOO[KBB
10227[K reg [19:0] lock_count_nxt;
10228:[K
10229[K [KESCESC[KOO[KBB
10230[K
10231:[K
10232[K [KESCESC[KOO[KBB
10233[K // Current/next pattern tracking
10234:[K
10235[K [KESCESC[KOO[KBB
10236[K reg [NUM_PATTERNS - 1 : 0] curr_pat;
10237:[K
10238[K [KESCESC[KOO[KBB
10239[K reg [NUM_PATTERNS - 1 : 0] next_pat;
10240:[K
10241[K [KESCESC[KOO[KBB
10242[K
10243:[K
10244[K [KESCESC[KOO[KBB
10245[K // Packet length related variables
10246:[K
10247[K [KESCESC[KOO[KBB
10248[K reg [10:0] size;
10249:[K
10250[K [KESCESC[KOO[KBB
10251[K reg [10:0] size_nxt;
10252:[K
10253[K [KESCESC[KOO[KBB
10254[K
10255:[K
10256[K [KESCESC[KOO[KBB
10257[K reg [9:0] count;
10258:[K
10259[K [KESCESC[KOO[KBB
10260[K reg [9:0] count_d1;
10261:[K
10262[K [KESCESC[KOO[KBB
10263[K reg [9:0] last_pos;
10264:[K
10265[K [KESCESC[KOO[KBB
10266[K
10267:[K
10268[K [KESCESC[KOO[KBB
10269[K reg done_nxt;
10270:[K
10271[K [KESCESC[KOO[KBB
10272[K
10273:[K
10274[K [KESCESC[KOO[KBB
10275[K reg locked_nxt;
10276:[K
10277[K [KESCESC[KOO[KBB
10278[K
10279:[K
10280[K [KESCESC[KOO[KBB
10281[K reg rx_rd_en_d1;
10282:[K
10283[K [KESCESC[KOO[KBB
10284[K reg rx_rd_en_d2;
10285:[K
10286[K [KESCESC[KOO[KBB
10287[K reg bad_nxt;
10288:[K
10289[K [KESCESC[KOO[KBB
10290[K
10291:[K
10292[K [KESCESC[KOO[KBB
10293[K reg [2:0] curr_port;
10294:[K
10295[K [KESCESC[KOO[KBB
10296[K reg [2:0] curr_port_nxt;
10297:[K
10298[K [KESCESC[KOO[KBB
10299[K
10300:[K
10301[K [KESCESC[KOO[KBB
10302[K reg [NUM_PATTERNS - 1:0] curr_pat_nxt;
10303:[K
10304[K [KESCESC[KOO[KBB
10305[K
10306:[K
10307[K [KESCESC[KOO[KBB
10308[K reg [SEQ_NO_WIDTH - 1:0] seq_no_nxt;
10309:[K
10310[K [KESCESC[KOO[KBB
10311[K
10312:[K
10313[K [KESCESC[KOO[KBB
10314[K wire [3:0] ctrl;
10315:[K
10316[K [KESCESC[KOO[KBB
10317[K reg [3:0] ctrl_d1;
10318:[K
10319[K [KESCESC[KOO[KBB
10320[K wire [31:0] data;
10321:[K
10322[K [KESCESC[KOO[KBB
10323[K reg [31:0] data_d1;
10324:[K
10325[K [KESCESC[KOO[KBB
10326[K
10327:[K
10328[K [KESCESC[KOO[KBB
10329[K wire [31:0] gen_data;
10330:[K
10331[K [KESCESC[KOO[KBB
10332[K reg [31:0] gen_data_d1;
10333:[K
10334[K [KESCESC[KOO[KBB
10335[K wire [3:0] gen_ctrl;
10336:[K
10337[K [KESCESC[KOO[KBB
10338[K wire gen_rd_en;
10339:[K
10340[K [KESCESC[KOO[KBB
10341[K
10342:[K
10343[K [KESCESC[KOO[KBB
10344[K reg eop;
10345:[K
10346[K [KESCESC[KOO[KBB
10347[K reg eop_nxt;
10348:[K
10349[K [KESCESC[KOO[KBB
10350[K
10351:[K
10352[K [KESCESC[KOO[KBB
10353[K reg rx_data_good;
10354:[K
10355[K [KESCESC[KOO[KBB
10356[K reg rx_da_sa_good;
10357:[K
10358[K [KESCESC[KOO[KBB
10359[K reg rx_size_pat_good;
10360:[K
10361[K [KESCESC[KOO[KBB
10362[K
10363:[K
10364[K [KESCESC[KOO[KBB
10365[K
10366:[K
10367[K [KESCESC[KOO[KBB
10368[K // Create the ctrl/data signals
10369:[K
10370[K [KESCESC[KOO[KBB
10371[K
10372:[K
10373[K [KESCESC[KOO[KBB
10374[K assign ctrl = {rx_data[35], rx_data[26], rx_data[17], rx_data[8]};
10375:[K
10376[K [KESCESC[KOO[KBB
10377[K assign data = {rx_data[34:27], rx_data[25:18], rx_data[16:9], rx_data[7:0]};
10378:[K
10379[K [KESCESC[KOO[KBB
10380[K
10381:[K
10382[K [KESCESC[KOO[KBB
10383[K // Copy the port and pattern to their outputs
10384:[K
10385[K [KESCESC[KOO[KBB
10386[K assign port = curr_port;
10387:[K
10388[K [KESCESC[KOO[KBB
10389[K assign pattern = curr_pat;
10390:[K
10391[K [KESCESC[KOO[KBB
10392[K
10393:[K
10394[K [KESCESC[KOO[KBB
10395[K // Generate the busy signal
10396:[K
10397[K [KESCESC[KOO[KBB
10398[K assign busy = count != 'h0 || !rx_almost_empty;
10399:[K
10400[K [KESCESC[KOO[KBB
10401[K
10402:[K
10403[K [KESCESC[KOO[KBB
10404[K assign gen_rd_en = rx_rd_en;
10405:[K
10406[K [KESCESC[KOO[KBB
10407[K
10408:[K
10409[K [KESCESC[KOO[KBB
10410[K
10411:[K
10412[K [KESCESC[KOO[KBB
10413[K // =================================
10414:[K
10415[K [KESCESC[KOO[KBB
10416[K // Main state machine
10417:[K
10418[K [KESCESC[KOO[KBB
10419[K
10420:[K
10421[K [KESCESC[KOO[KBB
10422[K always @(posedge clk)
10423:[K
10424[K [KESCESC[KOO[KBB
10425[K begin
10426:[K
10427[K [KESCESC[KOO[KBB
10428[K bad <= bad_nxt;
10429:[K
10430[K [KESCESC[KOO[KBB
10431[K done <= done_nxt;
10432:[K
10433[K [KESCESC[KOO[KBB
10434[K
10435:[K
10436[K [KESCESC[KOO[KBB
10437[K curr_port <= curr_port_nxt;
10438:[K
10439[K [KESCESC[KOO[KBB
10440[K curr_pat <= curr_pat_nxt;
10441:[K
10442[K [KESCESC[KOO[KBB
10443[K seq_no <= seq_no_nxt;
10444:[K
10445[K [KESCESC[KOO[KBB
10446[K size <= size_nxt;
10447:[K
10448[K [KESCESC[KOO[KBB
10449[K eop <= eop_nxt;
10450:[K
10451[K [KESCESC[KOO[KBB
10452[K end
10453:[K
10454[K [KESCESC[KOO[KBB
10455[K
10456:[K
10457[K [KESCESC[KOO[KBB
10458[K // State machine to monitor incoming data
10459:[K
10460[K [KESCESC[KOO[KBB
10461[K always @*
10462:[K
10463[K [KESCESC[KOO[KBB
10464[K begin
10465:[K
10466[K [KESCESC[KOO[KBB
10467[K // Set variables to their default values
10468:[K
10469[K [KESCESC[KOO[KBB
10470[K bad_nxt = bad;
10471:[K
10472[K [KESCESC[KOO[KBB
10473[K done_nxt = 1'b0;
10474:[K
10475[K [KESCESC[KOO[KBB
10476[K
10477:[K
10478[K [KESCESC[KOO[KBB
10479[K curr_port_nxt = curr_port;
10480:[K
10481[K [KESCESC[KOO[KBB
10482[K curr_pat_nxt = curr_pat;
10483:[K
10484[K [KESCESC[KOO[KBB
10485[K seq_no_nxt = seq_no;
10486:[K
10487[K [KESCESC[KOO[KBB
10488[K size_nxt = size;
10489:[K
10490[K [KESCESC[KOO[KBB
10491[K eop_nxt = eop;
10492:[K
10493[K [KESCESC[KOO[KBB
10494[K
10495:[K
10496[K [KESCESC[KOO[KBB
10497[K if (reset) begin
10498:[K
10499[K [KESCESC[KOO[KBB
10500[K bad_nxt = 1'b0;
10501:[K
10502[K [KESCESC[KOO[KBB
10503[K curr_port_nxt = 'h0;
10504:[K
10505[K [KESCESC[KOO[KBB
10506[K curr_pat_nxt = 'h0;
10507:[K
10508[K [KESCESC[KOO[KBB
10509[K seq_no_nxt = 'h0;
10510:[K
10511[K[?1l>[?1049l]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$ pwd
10512/home/netfpga/netfpga/projects/selftest/src
10513]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$ clear
10514[H[2J]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$ sudo su -
10515]0;root@node1-1.sb9.orbit-lab.org: ~root@node1-1:~# exitclear[1Plear~netfpga/netfpga/projects/selftest/sw/selftest -cn
10516Found net device: nf2c0
10517CPCI Information
10518----------------
10519Version: 4 (rev 1)
10520
10521Device (Virtex) Information
10522---------------------------
10523Project directory: selftest
10524Project name: Selftest
10525Project description: NetFPGA selftest -- exercises all major subsystems of the board
10526
10527Device ID: 5
10528Version: 1.1.0
10529Built against CPCI version: 4 (rev 1)
10530
10531[?1049h[1;44r[m(B[4l[?7h[H[2J[0;7m(B NetFPGA selftest v1.00 alpha [3;1H[m(BClock test: pass
10532Reg test: pass
10533MDIO test: pass
10534[6GPhy 1: rev 1 up, 1000Base-TX full
10535[6GPhy 2: rev 1 up, 1000Base-TX full
10536[6GPhy 3: rev 1 up, 1000Base-TX full
10537[6GPhy 4: rev 1 up, 1000Base-TX full
10538PHY test: fail
10539 Port 1: link w/ 3 Good: 17261 Bad: 0
10540 Port 2: link w/ 4 Good: 17263 Bad: 0
10541 Port 3: link w/ 1 Good: 17264 Bad: 0
10542 Port 4: no link Good: 0 Bad: 2984
10543DRAM test: Iteration: 1 Good: 0 Bad: 0 B/W: nan Gbps
10544SRAM test: Iteration: 1 Good: 0 Bad: 0 B/W: nan Gbps
10545SATA Test Disabled
10546DMA test: Iteration(one pkt write, read, compare): 40 Good: 40 Bad: 0
10547[44d[0;7m(BQ[m(B Quit
10548[A[11;29H07566 Bad: 2[12;29H07569 Bad: 1[13;29H07570 Bad: 1[14;35H18673[15;23H3[15;33H2[15;51H10.74 Gbps[16;23H34 Good: 33 Bad: 0 B/W: 4.43 Gbps[18;52H8[18;63H8
10549[43d[11;29H9763
1055097638
10551[29G97639
10552 34442[15;23H6[15;33H5[15;52H3.42[16;23H67[16;34H66[18;52H120 Good: 120 Bad: 0
10553[43d[11;28H287731[11;42H3[12;28H287733[12;42H2[13;28H287734[13;42H2[14;35H50193[15;23H8[15;33H7[15;52H2.53[16;23H100 Good: 99 Bad: 0 B/W: 4.43 Gbps[18;53H6[18;65H6
10554[43d[11;28H377829
10555[28G377831
10556[28G377832
10557 65925[15;23H10 Good: 9 Bad: 0 B/W: 12.08 Gbps[16;24H34[16;35H133 Bad: 0 B/W: 4.46 Gbps[18;52H20[18;64H20
10558[43d[11;28H467926[11;42H5[12;28H467928[12;42H4[13;28H467930[13;42H3[14;35H81679[15;24H3[15;34H12 Bad: 0 B/W: 12.88 Gbps[16;24H67[16;36H66[18;53H4[18;65H4
10559[43d[11;28H558021
10560[28G558023
10561[28G558025
10562 97467[15;24H5[15;35H4[15;56H53[16;23H200[16;36H99[16;58H5[18;53H8[18;65H8
10563[43d[11;28H648122[11;42H6[12;28H648125[12;42H5[13;28H648127[13;42H4[14;35H113328[15;24H7[15;35H6[15;56H27[16;24H33[16;35H232[18;52H32[18;64H32
10564[43d[11;28H738221[11;42H7[12;28H738223[12;42H6[13;28H738224[13;42H6[14;36H29080[15;23H20[15;35H9[15;54H1.33[16;24H66[16;36H65[16;55H3.9
10565
10566[53G6[18;65H6
10567[43d[11;28H828319
10568[28G828321
10569[28G828322
10570 144913[15;24H2[15;34H21[15;56H27[16;24H99[16;36H98[16;55H4.00[18;52H40[18;64H40
10571[43d[11;28H918415[11;42H8[12;28H918417[12;42H7[13;28H918418[13;42H7[14;36H60711[15;24H5[15;35H4[15;56H71[16;23H332[16;35H331[16;58H4[18;53H4[18;65H4
10572[43d[11;28H1008510 Bad: 8[12;28H1008512 Bad: 7[13;28H1008514 Bad: 7[14;36H76475[15;24H7[15;35H6[15;56H63[16;24H66[16;36H65[16;58H8[18;53H8[18;65H8
10573[43d[11;30H98612[11;43H10[12;30H98613[12;43H10[13;30H986[13;43H10[14;36H92280[15;24H9[15;35H8[15;56H56[16;24H99[16;36H98[16;57H11[18;52H52[18;64H52
10574[43d[11;29H1887
105751887
105761887
10577: 208155[15;23H32[15;34H31[15;56H89[16;23H432[16;35H431[16;58H3[18;53H6[18;65H6
10578[43d[11;29H278808[11;44H2[12;29H278809[12;44H2[13;29H278811[13;44H1[14;36H23994[15;24H4[15;35H3[15;57H1[16;24H65[16;36H64[16;58H5[18;52H60[18;64H60
10579[43d[11;29H368906
10580[29G368907
10581[29G368909
10582239835[15;24H6[15;35H5[15;56H74[16;24H98[16;36H97[16;58H7[18;53H4[18;65H4
10583[43d[11;29H459005[11;44H3[12;29H4590[12;44H3[13;29H4590[13;44H2[14;36H55700[15;24H9[15;35H8[15;54H2.00[16;23H531[16;35H530[16;58H8[18;53H8[18;65H8
10584[43d[11;29H549102[11;44H5[12;29H549103[12;44H5[13;29H549105[13;44H4[14;36H71567[15;23H41[15;34H40[15;54H1.3[16;24H64[16;36H63[16;55H3.9[18;52H72[18;64H72
10585[43d[11;29H639199
10586[29G639200
10587[29G639203
10588287414[15;24H4[15;35H3[15;56H54[16;24H98[16;36H97[16;55H4.01[18;53H6[18;65H6
10589[43d[11;29H729296[11;44H6[12;29H729297[12;44H6[13;29H729299[13;44H5[14;35H30318[15;24H6[15;35H5[15;57H0[16;23H631[16;35H630[16;58H3[18;52H80[18;64H80
10590[43d[11;29H819392
10591[29G819393
10592[29G819396
10593318992[15;24H8[15;35H7[15;56H47[16;24H64[16;36H63[16;58H4[18;53H4[18;65H4
10594[43d[11;29H909497[11;44H8[12;29H909499[12;44H7[13;29H909501[13;44H6[14;36H34791[15;23H51[15;34H50[15;56H6[16;24H97[16;36H96[16;58H6[18;53H8[18;65H8
10595[43d[11;30H99591
10596[30G99593
10597[30G99595
10598350679[15;24H3[15;35H2[15;57H3[16;23H730[16;35H729[16;58H8[18;52H92[18;64H92
10599[43d[11;28H2089689[11;44H9[12;28H2089691[12;44H8[13;28H2089693[13;44H7[14;36H66552[15;24H5[15;35H4[15;57H0[16;24H63[16;36H62[16;58H9[18;53H6[18;65H6
10600[43d[11;29H179790
10601[29G179792
10602[29G179794
1060338242[15;24H8[15;35H7[15;56H77[16;24H96[16;36H95[16;57H10[18;52H1000 Good: 1000 Bad: 0
10604[43d[11;29H269887[11;43H21[12;29H269890[12;44H9[13;29H269892[13;44H8[14;36H98407[15;23H60[15;35H9[15;57H3[16;23H830[16;35H829[16;58H2
10605
10606[54G4[18;67H4
10607[43d[11;29H359986[11;44H2[12;29H359989[12;43H20[13;29H359991[13;44H9[14;35H414201[15;24H3[15;34H62[15;56H48[16;24H63[16;36H62[16;55H3.99
10608
10609[54G8[18;67H8
10610[43d[11;29H450083
10611[29G450086
10612[29G450088
10613430104[15;24H5[15;35H4[15;57H5[16;24H96[16;36H95[16;55H4.00[18;53H12[18;66H12
10614[43d[11;29H540178[11;44H4[12;29H540181[12;44H2[13;29H540183[13;43H21[14;36H45911[15;24H7[15;35H6[15;57H3[16;23H929[16;35H928[16;58H2
10615
10616[54G6[18;67H6
10617[43d[11;29H630274
10618[29G630277
10619[29G630280
10620461830[15;23H70[15;35H9[15;56H58[16;24H62[16;36H61[16;58H3[18;53H20[18;66H20
10621[43d[11;29H720375[11;44H5[12;29H720378[12;44H3[13;29H7203[13;44H2[14;36H77575[15;24H2[15;34H71[15;57H5[16;24H95[16;36H94[16;58H4
10622
10623[54G4[18;67H4
10624[43d[11;29H810473
10625[29G810476
10626[29G810478
10627493433[15;24H4[15;35H3[15;57H3[16;23H1028 Good: 1027 Bad: 0 B/W: 4.05 Gbps[18;54H8[18;67H8
10628[43d[11;29H900571[11;44H7[12;29H900575[12;44H5[13;29H9005[13;44H3[14;35H509331[15;24H7[15;35H6[15;56H66[16;25H62[16;38H61[16;60H7[18;53H32[18;66H32
10629[43d[11;30H90668
10630[30G90672
10631[30G90675
10632525118[15;24H9[15;35H8[15;57H3[16;25H95[16;38H94[16;60H8[18;54H6[18;67H6
10633[43d[11;28H3080767[11;44H8[12;28H3080770[12;44H6[13;28H3080773[13;44H4[14;36H41066[15;23H82[15;34H81[15;56H75[16;24H128[16;37H127[16;60H9[18;53H40[18;66H40
10634[43d[11;29H170865[11;43H30[12;29H170868[12;44H8[13;29H170871[13;44H6[14;36H56900[15;24H4[15;35H3[15;56H43[16;25H61[16;38H60[16;57H3.9[18;54H4[18;67H4
10635[43d[11;29H2609
10636260969
10637[29G260972
10638572816[15;24H6[15;35H5[15;57H1[16;25H94[16;38H93[16;57H4.00[18;54H8[18;67H8
10639[43d[11;29H351064[11;44H1[12;29H351068[12;44H9[13;29H351071[13;44H7[14;36H88659[15;24H9[15;35H8[15;56H52[16;24H227[16;37H226[16;60H1[18;53H52[18;66H52
10640[43d[11;29H441157
10641[29G441160
10642[29G441164
10643604455[15;23H91[15;34H90[15;57H0[16;25H60[16;38H59[16;60H2[18;54H6[18;67H6
10644[43d[11;29H531255[11;44H4[12;29H531258[12;43H32[13;29H531261[13;43H30[14;36H20193[15;24H3[15;35H2[15;56H49[16;25H94[16;38H93[16;60H4[18;53H60[18;66H60
10645[43d[11;29H621354
10646[29G621357
10647[29G621360
1064863614[15;24H6[15;35H5[15;56H5[16;24H327[16;37H326[18;54H4[18;67H4
10649[43d[11;29H711452[11;44H6[12;29H711455[12;44H4[13;29H7114[13;44H1[14;36H51991[15;24H8[15;35H7[15;57H7[16;25H60[16;38H59[16;60H5[18;54H8[18;67H8
10650[43d[11;29H801549
10651[29G801552
10652[29G801556
10653667875[15;23H101 Good: 100 Bad: 0 B/W: 11.67 Gbps[16;25H93[16;38H92[16;60H6[18;53H72[18;66H72
10654[43d[11;30H91647[11;44H7[12;30H91651[12;44H5[13;30H91655[13;44H2[14;36H83730[15;25H3[15;37H2[15;59H5[16;24H426[16;37H425[16;60H7[18;54H6[18;67H6
10655[43d[11;29H981745[11;44H9[12;29H981748[12;44H7[13;29H981753[13;44H3[14;36H99714[15;25H5[15;37H4[15;58H39[16;25H59[16;38H58[16;57H3.99[18;53H80[18;66H80
10656[43d[44;1H[?1049l
10657[?1l>Caught SIGINT. Exiting...
10658]0;root@node1-1.sb9.orbit-lab.org: ~root@node1-1:~#
10659]0;root@node1-1.sb9.orbit-lab.org: ~root@node1-1:~#
10660]0;root@node1-1.sb9.orbit-lab.org: ~root@node1-1:~# clear
10661[H[2J]0;root@node1-1.sb9.orbit-lab.org: ~root@node1-1:~# clear~netfpga/netfpga/projects/selftest/sw/selftest -cn
10662Found net device: nf2c0
10663CPCI Information
10664----------------
10665Version: 4 (rev 1)
10666
10667Device (Virtex) Information
10668---------------------------
10669Project directory: selftest
10670Project name: Selftest
10671Project description: NetFPGA selftest -- exercises all major subsystems of the board
10672
10673Device ID: 5
10674Version: 1.1.0
10675Built against CPCI version: 4 (rev 1)
10676
10677[?1049h[1;44r[m(B[4l[?7h[H[2J[0;7m(B NetFPGA selftest v1.00 alpha [3;1H[m(BClock test: pass
10678Reg test: pass
10679MDIO test: pass
10680[6GPhy 1: rev 1 up, 1000Base-TX full
10681[6GPhy 2: rev 1 up, 1000Base-TX full
10682[6GPhy 3: rev 1 up, 1000Base-TX full
10683[6GPhy 4: rev 1 up, 1000Base-TX full
10684PHY test: fail
10685 Port 1: link w/ 2 Good: 17259 Bad: 0
10686 Port 2: link w/ 1 Good: 17261 Bad: 0
10687 Port 3: link w/ 4 Good: 17266 Bad: 2
10688 Port 4: link w/ 3 Good: 17267 Bad: 2
10689DRAM test: Iteration: 1 Good: 0 Bad: 0 B/W: nan Gbps
10690SRAM test: Iteration: 1 Good: 0 Bad: 0 B/W: nan Gbps
10691SATA Test Disabled
10692DMA test: Iteration(one pkt write, read, compare): 40 Good: 40 Bad: 0
10693[44d[0;7m(BQ[m(B Quit
10694[A[11;29H07570 Bad: 2[12;29H07572 Bad: 2[13;29H07578 Bad: 2[14;29H07579 Bad: 2[15;23H3[15;33H2[15;51H10.74 Gbps[16;23H34 Good: 33 Bad: 0 B/W: 4.43 Gbps[18;52H8[18;63H8
10695[43d[11;29H97641
10696[29G9764[12;42H3[13;29H9764[13;42H3[14;29H9764[14;42H3[15;23H6[15;33H5[15;52H3.42[16;23H67[16;34H66[18;52H120 Good: 120 Bad: 0
10697[43d[11;28H28773[11;42H3[12;28H28773
10698[28G28773
10699[28G28773[15;23H8[15;33H7[15;52H2.53[16;23H100 Good: 99 Bad: 0 B/W: 4.43 Gbps[18;53H6[18;65H6
10700[43d[11;28H3778[11;42H4[12;28H3778[12;42H4[13;28H377837[13;42H5[14;28H3778[14;42H5[15;23H10 Good: 9 Bad: 0 B/W: 12.08 Gbps[16;24H34[16;35H133 Bad: 0 B/W: 4.46 Gbps[18;52H20[18;64H20
10701[43d[11;28H467929
10702[28G467930
10703[28G467935[13;42H6[14;28H467936[14;42H6[15;24H3[15;34H12 Bad: 0 B/W: 12.88 Gbps[16;24H67[16;36H66[18;53H4[18;65H4
10704[43d[11;28H558025[11;42H5[12;28H558026[12;42H5[13;28H558031
10705[28G558032[15;24H5[15;35H4[15;56H53[16;23H200[16;36H99[16;58H5[18;53H8[18;65H8
10706[43d[11;28H648124
10707[28G648125
10708[28G648129[13;42H8[14;28H648131[14;42H7[15;24H7[15;35H6[15;54H0.74[16;24H33[16;35H232[16;55H3.89[18;52H32[18;64H32
10709[43d[11;28H738219[11;42H7[12;28H738221[12;42H6[13;28H738225
10710[28G738227[15;23H20[15;35H9[15;54H1.33[16;24H66[16;36H65[16;57H95[18;53H6[18;65H6
10711[43d[11;28H828320
10712[28G828322
10713[28G828327[13;42H9[14;28H828329[14;42H8[15;24H2[15;34H21[15;56H27[16;24H99[16;36H98[16;55H4.00[18;52H40[18;64H40
10714[43d[11;28H918418[11;42H8[12;28H918420[12;42H7[13;28H918425
10715[28G918427[15;24H5[15;35H4[15;56H71[16;23H332[16;35H331[16;58H4[18;53H4[18;65H4
10716[43d[11;28H1008516 Bad: 8[12;28H1008517 Bad: 9[13;28H1008523 Bad: 10[14;28H1008524 Bad: 10[15;24H7[15;35H6[15;56H63[16;24H66[16;36H65[16;58H8[18;53H8[18;65H8
10717[43d[11;30H98612[11;43H9[12;30H98613
10718[30G98619
10719[30G98620[15;24H9[15;35H8[15;56H56[16;24H99[16;36H98[16;57H11[18;52H52[18;64H52
10720[43d[11;29H188714[11;43H10[12;29H188715[12;43H10[13;29H188721[13;44H1[14;29H188722[14;44H1[15;23H32[15;34H31[15;56H89[16;23H432[16;35H431[16;58H3[18;53H6[18;65H6
10721[43d[11;29H278811
10722[29G278812
10723[29G278816[13;44H3[14;29H278818[14;44H3[15;24H4[15;35H3[15;57H1[16;24H65[16;36H64[16;58H5[18;52H60[18;64H60
10724[43d[11;29H368906[11;44H1[12;29H368906[12;44H2[13;29H368912
10725[29G368913[15;24H6[15;35H5[15;56H74[16;24H98[16;36H97[16;58H7[18;53H4[18;65H4
10726[43d[11;29H459007
10727[29G459007
10728[29G4590[13;44H4[14;29H4590[14;44H4[15;24H9[15;35H8[15;56H33[16;23H531[16;35H530[16;55H3.95[18;53H8[18;65H8
10729[43d[11;29H549103[11;44H4[12;29H549104[12;44H4[13;29H549109[13;44H6[14;29H549110[14;44H6[15;23H41[15;34H40[15;57H0[16;24H64[16;36H63[16;58H8[18;52H72[18;64H72
10730[43d[11;29H639201
10731[29G639202
10732[29G639206[13;44H7[14;29H639207[14;44H7[15;24H4[15;35H3[15;56H54[16;24H98[16;36H97[16;55H4.01[18;53H6[18;65H6
10733[43d[11;29H729299[11;44H5[12;29H729300[12;44H5[13;29H729304
10734[29G729306[15;24H6[15;35H5[15;57H0[16;23H631[16;35H630[16;58H3[18;52H80[18;64H80
10735[43d[11;29H8193
107368194[12;44H6[13;29H8194[13;44H9[14;29H819405[14;44H9[15;24H8[15;35H7[15;56H47[16;24H64[16;36H63[16;58H4[18;53H4[18;65H4
10737[43d[11;29H909497[11;44H6[12;29H909498
10738[29G909502
10739[29G909503[15;23H51[15;34H50[15;56H6[16;24H97[16;36H96[16;58H6[18;53H8[18;65H8
10740[43d[11;30H99598[11;44H7[12;30H99599[12;44H7[13;30H996[13;43H20[14;30H996[14;43H20[15;24H3[15;35H2[15;57H3[16;23H730[16;35H729[16;58H8[18;52H92[18;64H92
10741[43d[11;28H2089692[12;28H2089693[13;28H2089695[13;44H2[14;28H2089696[14;44H2[15;24H5[15;35H4[15;57H0[16;24H63[16;36H62[16;58H9[18;53H6[18;65H6
10742[43d[11;29H179788[11;44H9[12;29H179790[12;44H8[13;29H179792
10743[29G179793[15;24H8[15;35H7[15;56H77[16;24H96[16;36H95[16;57H10[18;52H1000 Good: 1000 Bad: 0
10744[43d[11;29H269890
10745[29G269892
10746[29G269894[13;44H3[14;29H269896[14;44H3[15;23H60[15;35H9[15;56H31[16;23H830[16;35H829[16;55H3.97
10747
10748[54G4[18;67H4
10749[43d[11;29H359986[11;43H20[12;29H359988[12;44H9[13;29H359990
10750[29G359991[15;24H3[15;34H62[15;56H48[16;24H63[16;36H62[16;58H9
10751
10752[54G8[18;67H8
10753[43d[11;29H4500
107544500
107554500[13;44H4[14;29H450090[14;44H5[15;24H5[15;35H4[15;57H5[16;24H96[16;36H95[16;55H4.00[18;53H12[18;66H12
10756[43d[11;29H540182[11;44H1[12;29H540183[12;43H21[13;29H540186
10757[29G540187[15;24H7[15;35H6[15;57H3[16;23H929[16;35H928[16;58H2
10758
10759[54G6[18;67H6
10760[43d[11;29H630283
10761[29G630284[12;44H2[13;29H630288[13;44H5[14;29H630288[14;44H6[15;23H70[15;35H9[15;56H58[16;24H62[16;36H61[16;58H3[18;53H20[18;66H20
10762[43d[11;29H720378[11;44H2[12;29H720380
10763[29G720383
10764[29G720383[15;24H2[15;34H71[15;57H5[16;24H95[16;36H94[16;58H4
10765
10766[54G4[18;67H4
10767[43d[11;29H810480[11;44H4[12;29H810482[12;44H3[13;29H810484[13;44H7[14;29H810484[14;44H8[15;24H4[15;35H3[15;57H3[16;23H1028 Good: 1027 Bad: 0 B/W: 4.05 Gbps[18;54H8[18;67H8
10768[43d[11;29H900575
10769[29G900578
10770[29G900580[13;44H8[14;29H900580[14;44H9[15;24H7[15;35H6[15;56H66[16;25H62[16;38H61[16;60H7[18;53H32[18;66H32
10771[43d[11;30H90672[11;44H5[12;30H90674[12;44H4[13;30H90677
10772[30G90677[15;24H9[15;35H8[15;57H3[16;25H95[16;38H94[16;60H8[18;54H6[18;67H6
10773[43d[11;28H3080770[12;28H3080772[13;28H3080775[13;44H9[14;28H3080774[14;43H31[15;23H82[15;34H81[15;56H44[16;24H128[16;37H127[16;57H3.9[18;53H40[18;66H40
10774[43d[11;29H170865[11;44H6[12;29H170867[12;44H5[13;29H170870
10775[29G170869[15;24H4[15;35H3[15;57H3[16;25H61[16;38H60[16;60H9[18;54H4[18;67H4
10776[43d[11;29H260969
10777[29G260971
10778[29G260974[13;43H30[14;29H260973[14;44H2[15;24H6[15;35H5[15;57H1[16;25H94[16;38H93[16;57H4.00[18;54H8[18;67H8
10779[43d[11;29H351066[11;44H7[12;29H351069[12;44H6[13;29H351071
10780[29G351070[15;24H9[15;35H8[15;56H52[16;24H227[16;37H226[16;60H1[18;53H52[18;66H52
10781[43d[11;29H441169
10782[29G441171[12;44H7[13;29H441172[13;44H2[14;29H441172[14;44H4[15;23H91[15;34H90[15;57H0[16;25H60[16;38H59[16;60H2[18;54H6[18;67H6
10783[43d[11;29H531261[11;44H9[12;29H531264
10784[29G531265
10785[29G531264[15;24H3[15;35H2[15;56H49[16;25H94[16;38H93[16;60H4[18;53H60[18;66H60
10786[43d[44;1H[?1049l
10787[?1l>]0;root@node1-1.sb9.orbit-lab.org: ~root@node1-1:~# clear
10788[H[2J]0;root@node1-1.sb9.orbit-lab.org: ~root@node1-1:~# exit
10789logout
10790]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$
10791]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$
10792]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$
10793[K]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$
10794]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$
10795]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$ add
10796addpart addr2line
10797]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$ add-[K[K[K[Kman[K[K[Kcat /etc/ifplugd/[K[K[K[K[K[K[K[Knetwork
10798network/ networks
10799]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$ cat /etc/network/i
10800if-down.d/ if-pre-up.d/ interfaces
10801if-post-down.d/ if-up.d/ interfaces~
10802]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$ cat /etc/network/i[K[K[K[K[K[K[K[K[K[K[K[K[K[K[K[K[K[Kman ifconfig
10803[?1049h[?1h=
10804IFCONFIG(8) Linux Programmer's Manual IFCONFIG(8)[m
10805[m
10806[1mNAME[0m[m
10807 ifconfig - configure a network interface[m
10808[m
10809[1mSYNOPSIS[0m[m
10810 [1mifconfig[0m [1m[-v][0m [1m[-a][0m [1m[-s][0m [1m[interface][0m[m
10811 [1mifconfig[0m [1m[-v][0m [1minterface[0m [1m[aftype][0m [1moptions[0m [1m|[0m [1maddress[0m [1m...[0m[m
10812[m
10813[1mDESCRIPTION[0m[m
10814 [1mIfconfig[0m is used to configure the kernel-resident network interfaces.[m
10815 It is used at boot time to set up interfaces as necessary. After that,[m
10816 it is usually only needed when debugging or when system tuning is[m
10817 needed.[m
10818[m
10819 If no arguments are given, [1mifconfig[0m displays the status of the cur‐[m
10820 rently active interfaces. If a single [1minterface[0m argument is given, it[m
10821 displays the status of the given interface only; if a single [1m-a[0m argu‐[m
10822 ment is given, it displays the status of all interfaces, even those[m
10823 that are down. Otherwise, it configures an interface.[m
10824[m
10825[1mAddress[0m [1mFamilies[0m[m
10826 If the first argument after the interface name is recognized as the[m
10827[7m Manual page ifconfig(8) line 1[27m[K
10828[K/[Kvv[Kll[Kaa[Knn
10829[K[1;1HIFCONFIG(8) Linux Programmer's Manual IFCONFIG(8)[m
10830[2;1H[m
10831[3;1H[1mNAME[0m[m
10832[4;1H ifconfig - configure a network interface[m
10833[5;1H[m
10834[6;1H[1mSYNOPSIS[0m[m
10835[7;1H [1mifconfig[0m [1m[-v][0m [1m[-a][0m [1m[-s][0m [1m[interface][0m[m
10836[8;1H [1mifconfig[0m [1m[-v][0m [1minterface[0m [1m[aftype][0m [1moptions[0m [1m|[0m [1maddress[0m [1m...[0m[m
10837[9;1H[m
10838[10;1H[1mDESCRIPTION[0m[m
10839[11;1H [1mIfconfig[0m is used to configure the kernel-resident network interfaces.[m
10840[12;1H It is used at boot time to set up interfaces as necessary. After that,[m
10841[13;1H it is usually only needed when debugging or when system tuning is[m
10842[14;1H needed.[m
10843[15;1H[m
10844[16;1H If no arguments are given, [1mifconfig[0m displays the status of the cur‐[m
10845[17;1H rently active interfaces. If a single [1minterface[0m argument is given, it[m
10846[18;1H displays the status of the given interface only; if a single [1m-a[0m argu‐[m
10847[19;1H ment is given, it displays the status of all interfaces, even those[m
10848[20;1H that are down. Otherwise, it configures an interface.[m
10849[21;1H[m
10850[22;1H[1mAddress[0m [1mFamilies[0m[m
10851[23;1H If the first argument after the interface name is recognized as the[m
10852[24;1H[1;1HIFCONFIG(8) Linux Programmer's Manual IFCONFIG(8)[m
10853[2;1H[m
10854[3;1H[1mNAME[0m[m
10855[4;1H ifconfig - configure a network interface[m
10856[5;1H[m
10857[6;1H[1mSYNOPSIS[0m[m
10858[7;1H [1mifconfig[0m [1m[-v][0m [1m[-a][0m [1m[-s][0m [1m[interface][0m[m
10859[8;1H [1mifconfig[0m [1m[-v][0m [1minterface[0m [1m[aftype][0m [1moptions[0m [1m|[0m [1maddress[0m [1m...[0m[m
10860[9;1H[m
10861[10;1H[1mDESCRIPTION[0m[m
10862[11;1H [1mIfconfig[0m is used to configure the kernel-resident network interfaces.[m
10863[12;1H It is used at boot time to set up interfaces as necessary. After that,[m
10864[13;1H it is usually only needed when debugging or when system tuning is[m
10865[14;1H needed.[m
10866[15;1H[m
10867[16;1H If no arguments are given, [1mifconfig[0m displays the status of the cur‐[m
10868[17;1H rently active interfaces. If a single [1minterface[0m argument is given, it[m
10869[18;1H displays the status of the given interface only; if a single [1m-a[0m argu‐[m
10870[19;1H ment is given, it displays the status of all interfaces, even those[m
10871[20;1H that are down. Otherwise, it configures an interface.[m
10872[21;1H[m
10873[22;1H[1mAddress[0m [1mFamilies[0m[m
10874[23;1H If the first argument after the interface name is recognized as the[m
10875[24;1H
10876[K[7mPattern not found (press RETURN)[27m[24;1H
10877[K/[KVV[KLL[KAA[KNN
10878[K[1;1HIFCONFIG(8) Linux Programmer's Manual IFCONFIG(8)[m
10879[2;1H[m
10880[3;1H[1mNAME[0m[m
10881[4;1H ifconfig - configure a network interface[m
10882[5;1H[m
10883[6;1H[1mSYNOPSIS[0m[m
10884[7;1H [1mifconfig[0m [1m[-v][0m [1m[-a][0m [1m[-s][0m [1m[interface][0m[m
10885[8;1H [1mifconfig[0m [1m[-v][0m [1minterface[0m [1m[aftype][0m [1moptions[0m [1m|[0m [1maddress[0m [1m...[0m[m
10886[9;1H[m
10887[10;1H[1mDESCRIPTION[0m[m
10888[11;1H [1mIfconfig[0m is used to configure the kernel-resident network interfaces.[m
10889[12;1H It is used at boot time to set up interfaces as necessary. After that,[m
10890[13;1H it is usually only needed when debugging or when system tuning is[m
10891[14;1H needed.[m
10892[15;1H[m
10893[16;1H If no arguments are given, [1mifconfig[0m displays the status of the cur‐[m
10894[17;1H rently active interfaces. If a single [1minterface[0m argument is given, it[m
10895[18;1H displays the status of the given interface only; if a single [1m-a[0m argu‐[m
10896[19;1H ment is given, it displays the status of all interfaces, even those[m
10897[20;1H that are down. Otherwise, it configures an interface.[m
10898[21;1H[m
10899[22;1H[1mAddress[0m [1mFamilies[0m[m
10900[23;1H If the first argument after the interface name is recognized as the[m
10901[24;1H[1;1HIFCONFIG(8) Linux Programmer's Manual IFCONFIG(8)[m
10902[2;1H[m
10903[3;1H[1mNAME[0m[m
10904[4;1H ifconfig - configure a network interface[m
10905[5;1H[m
10906[6;1H[1mSYNOPSIS[0m[m
10907[7;1H [1mifconfig[0m [1m[-v][0m [1m[-a][0m [1m[-s][0m [1m[interface][0m[m
10908[8;1H [1mifconfig[0m [1m[-v][0m [1minterface[0m [1m[aftype][0m [1moptions[0m [1m|[0m [1maddress[0m [1m...[0m[m
10909[9;1H[m
10910[10;1H[1mDESCRIPTION[0m[m
10911[11;1H [1mIfconfig[0m is used to configure the kernel-resident network interfaces.[m
10912[12;1H It is used at boot time to set up interfaces as necessary. After that,[m
10913[13;1H it is usually only needed when debugging or when system tuning is[m
10914[14;1H needed.[m
10915[15;1H[m
10916[16;1H If no arguments are given, [1mifconfig[0m displays the status of the cur‐[m
10917[17;1H rently active interfaces. If a single [1minterface[0m argument is given, it[m
10918[18;1H displays the status of the given interface only; if a single [1m-a[0m argu‐[m
10919[19;1H ment is given, it displays the status of all interfaces, even those[m
10920[20;1H that are down. Otherwise, it configures an interface.[m
10921[21;1H[m
10922[22;1H[1mAddress[0m [1mFamilies[0m[m
10923[23;1H If the first argument after the interface name is recognized as the[m
10924[24;1H
10925[K[7mPattern not found (press RETURN)[27m[24;1H
10926[K[7m Manual page ifconfig(8) line 1/185 13%[27m[K
10927[K name of a supported address family, that address family is used for[m
10928 decoding and displaying all protocol addresses. Currently supported[m
10929 address families include [1minet[0m (TCP/IP, default), [1minet6[0m (IPv6), [1max25[0m[m
10930 (AMPR Packet Radio), [1mddp[0m (Appletalk Phase 2), [1mipx[0m (Novell IPX) and[m
10931 [1mnetrom[0m (AMPR Packet radio).[m
10932[m
10933[1mOPTIONS[0m[m
10934 [1m-a[0m display all interfaces which are currently available, even if[m
10935 down[m
10936[m
10937 [1m-s[0m display a short list (like netstat -i)[m
10938[m
10939 [1m-v[0m be more verbose for some error conditions[m
10940[m
10941 [1minterface[0m[m
10942 The name of the interface. This is usually a driver name fol‐[m
10943 lowed by a unit number, for example [1meth0[0m for the first Ethernet[m
10944 interface. If your kernel supports alias interfaces, you can[m
10945 specify them with [1meth0:0[0m for the first alias of eth0. You can[m
10946 use them to assign a second address. To delete an alias inter‐[m
10947 face use [1mifconfig[0m [1meth0:0[0m [1mdown[0m. Note: for every scope (i.e. same[m
10948 net with address/netmask combination) all aliases are deleted,[m
10949 if you delete the first (primary).[m
10950[7m Manual page ifconfig(8) line 27/185 27%[27m[K
10951[K[m
10952 [1mup[0m This flag causes the interface to be activated. It is implic‐[m
10953 itly specified if an address is assigned to the interface.[m
10954[m
10955 [1mdown[0m This flag causes the driver for this interface to be shut down.[m
10956[m
10957 [1m[-]arp[0m Enable or disable the use of the ARP protocol on this interface.[m
10958[m
10959 [1m[-]promisc[0m[m
10960 Enable or disable the [1mpromiscuous[0m mode of the interface. If[m
10961 selected, all packets on the network will be received by the[m
10962 interface.[m
10963[m
10964 [1m[-]allmulti[0m[m
10965 Enable or disable [1mall-multicast[0m mode. If selected, all multi‐[m
10966 cast packets on the network will be received by the interface.[m
10967[m
10968 [1mmetric[0m [1mN[0m[m
10969 This parameter sets the interface metric.[m
10970[m
10971 [1mmtu[0m [1mN[0m This parameter sets the Maximum Transfer Unit (MTU) of an inter‐[m
10972 face.[m
10973[m
10974[7m Manual page ifconfig(8) line 50/185 38%[27m[K
10975[K [1mdstaddr[0m [1maddr[0m[m
10976 Set the remote IP address for a point-to-point link (such as[m
10977 PPP). This keyword is now obsolete; use the [1mpointopoint[0m keyword[m
10978 instead.[m
10979[m
10980 [1mnetmask[0m [1maddr[0m[m
10981 Set the IP network mask for this interface. This value defaults[m
10982 to the usual class A, B or C network mask (as derived from the[m
10983 interface IP address), but it can be set to any value.[m
10984[m
10985 [1madd[0m [1maddr/prefixlen[0m[m
10986 Add an IPv6 address to an interface.[m
10987[m
10988 [1mdel[0m [1maddr/prefixlen[0m[m
10989 Remove an IPv6 address from an interface.[m
10990[m
10991 [1mtunnel[0m [1maa.bb.cc.dd[0m[m
10992 Create a new SIT (IPv6-in-IPv4) device, tunnelling to the given[m
10993 destination.[m
10994[m
10995 [1mirq[0m [1maddr[0m[m
10996 Set the interrupt line used by this device. Not all devices can[m
10997 dynamically change their IRQ setting.[m
10998[7m Manual page ifconfig(8) line 73/185 49%[27m[K
10999[K [KESCESC[KOO[KBB
11000[K[m
11001[7m Manual page ifconfig(8) line 74/185 49%[27m[K
11002[K [KESCESC[KOO[KBB
11003[K [1mio_addr[0m [1maddr[0m[m
11004[7m Manual page ifconfig(8) line 75/185 50%[27m[K
11005[K [KESCESC[KOO[KBB
11006[K Set the start address in I/O space for this device.[m
11007[7m Manual page ifconfig(8) line 76/185 50%[27m[K
11008[K [KESCESC[KOO[KBB
11009[K[m
11010[7m Manual page ifconfig(8) line 77/185 50%[27m[K
11011[K [KESCESC[KOO[KBB
11012[K [1mmem_start[0m [1maddr[0m[m
11013[7m Manual page ifconfig(8) line 78/185 51%[27m[K
11014[K [KESCESC[KOO[KBB
11015[K Set the start address for shared memory used by this device.[m
11016[7m Manual page ifconfig(8) line 79/185 52%[27m[K
11017[K [KESCESC[KOO[KBB
11018[K Only a few devices need this.[m
11019[7m Manual page ifconfig(8) line 80/185 52%[27m[K
11020[K [KESCESC[KOO[KBB
11021[K[m
11022[7m Manual page ifconfig(8) line 81/185 52%[27m[K
11023[K [KESCESC[KOO[KBB
11024[K [1mmedia[0m [1mtype[0m[m
11025[7m Manual page ifconfig(8) line 82/185 53%[27m[K
11026[K [KESCESC[KOO[KBB
11027[K Set the physical port or medium type to be used by the device.[m
11028[7m Manual page ifconfig(8) line 83/185 54%[27m[K
11029[K [KESCESC[KOO[KBB
11030[K Not all devices can change this setting, and those that can vary[m
11031[7m Manual page ifconfig(8) line 84/185 54%[27m[K
11032[K [KESCESC[KOO[KBB
11033[K in what values they support. Typical values for [1mtype[0m are[m
11034[7m Manual page ifconfig(8) line 85/185 55%[27m[K
11035[K [KESCESC[KOO[KBB
11036[K [1m10base2[0m (thin Ethernet), [1m10baseT[0m (twisted-pair 10Mbps Ethernet),[m
11037[7m Manual page ifconfig(8) line 86/185 56%[27m[K
11038[K [KESCESC[KOO[KBB
11039[K [1mAUI[0m (external transceiver) and so on. The special medium type[m
11040[7m Manual page ifconfig(8) line 87/185 57%[27m[K
11041[K [KESCESC[KOO[KBB
11042[K of [1mauto[0m can be used to tell the driver to auto-sense the media.[m
11043[7m Manual page ifconfig(8) line 88/185 58%[27m[K
11044[K [KESCESC[KOO[KBB
11045[K Again, not all drivers can do this.[m
11046[7m Manual page ifconfig(8) line 89/185 59%[27m[K
11047[K [KESCESC[KOO[KBB
11048[K[m
11049[7m Manual page ifconfig(8) line 90/185 59%[27m[K
11050[K [KESCESC[KOO[KBB
11051[K [1m[-]broadcast[0m [1m[addr][0m[m
11052[7m Manual page ifconfig(8) line 91/185 59%[27m[K
11053[K [KESCESC[KOO[KBB
11054[K If the address argument is given, set the protocol broadcast[m
11055[7m Manual page ifconfig(8) line 92/185 60%[27m[K
11056[K [KESCESC[KOO[KBB
11057[K address for this interface. Otherwise, set (or clear) the[m
11058[7m Manual page ifconfig(8) line 93/185 61%[27m[K
11059[K [KESCESC[KOO[KBB
11060[K [1mIFF_BROADCAST[0m flag for the interface.[m
11061[7m Manual page ifconfig(8) line 94/185 62%[27m[K
11062[K [KESCESC[KOO[KBB
11063[K[m
11064[7m Manual page ifconfig(8) line 95/185 62%[27m[K
11065[K [KESCESC[KOO[KBB
11066[K [1m[-]pointopoint[0m [1m[addr][0m[m
11067[7m Manual page ifconfig(8) line 96/185 63%[27m[K
11068[K [KESCESC[KOO[KBB
11069[K This keyword enables the [1mpoint-to-point[0m mode of an interface,[m
11070[7m Manual page ifconfig(8) line 97/185 64%[27m[K
11071[K [KESCESC[KOO[KBB
11072[K meaning that it is a direct link between two machines with[m
11073[7m Manual page ifconfig(8) line 98/185 65%[27m[K
11074[K [KESCESC[KOO[KBB
11075[K nobody else listening on it.[m
11076[7m Manual page ifconfig(8) line 99/185 65%[27m[K
11077[K [KESCESC[KOO[KBB
11078[K If the address argument is also given, set the protocol address[m
11079[7m Manual page ifconfig(8) line 100/185 66%[27m[K
11080[K [KESCESC[KOO[KBB
11081[K of the other side of the link, just like the obsolete [1mdstaddr[0m[m
11082[7m Manual page ifconfig(8) line 101/185 67%[27m[K
11083[K [KESCESC[KOO[KBB
11084[K keyword does. Otherwise, set or clear the [1mIFF_POINTOPOINT[0m flag[m
11085[7m Manual page ifconfig(8) line 102/185 68%[27m[K
11086[K [KESCESC[KOO[KBB
11087[K for the interface.[m
11088[7m Manual page ifconfig(8) line 103/185 68%[27m[K
11089[K [KESCESC[KOO[KBB
11090[K[m
11091[7m Manual page ifconfig(8) line 104/185 68%[27m[K
11092[K [KESCESC[KOO[KBB
11093[K [1mhw[0m [1mclass[0m [1maddress[0m[m
11094[7m Manual page ifconfig(8) line 105/185 69%[27m[K
11095[K [KESCESC[KOO[KBB
11096[K Set the hardware address of this interface, if the device driver[m
11097[7m Manual page ifconfig(8) line 106/185 70%[27m[K
11098[K [KESCESC[KOO[KBB
11099[K supports this operation. The keyword must be followed by the[m
11100[7m Manual page ifconfig(8) line 107/185 71%[27m[K
11101[K [KESCESC[KOO[KBB
11102[K name of the hardware class and the printable ASCII equivalent of[m
11103[7m Manual page ifconfig(8) line 108/185 72%[27m[K
11104[K [KESCESC[KOO[KBB
11105[K the hardware address. Hardware classes currently supported[m
11106[7m Manual page ifconfig(8) line 109/185 72%[27m[K
11107[K [KESCESC[KOO[KBB
11108[K include [1mether[0m (Ethernet), [1max25[0m (AMPR AX.25), [1mARCnet[0m and [1mnetrom[0m[m
11109[7m Manual page ifconfig(8) line 110/185 74%[27m[K
11110[K [KESCESC[KOO[KBB
11111[K (AMPR NET/ROM).[m
11112[7m Manual page ifconfig(8) line 111/185 74%[27m[K
11113[K [KESCESC[KOO[KBB
11114[K[m
11115[7m Manual page ifconfig(8) line 112/185 74%[27m[K
11116[K [KESCESC[KOO[KBB
11117[K [1mmulticast[0m[m
11118[7m Manual page ifconfig(8) line 113/185 74%[27m[K
11119[K [KESCESC[KOO[KBB
11120[K Set the multicast flag on the interface. This should not nor‐[m
11121[7m Manual page ifconfig(8) line 114/185 75%[27m[K
11122[K [KESCESC[KOO[KBB
11123[K mally be needed as the drivers set the flag correctly them‐[m
11124[7m Manual page ifconfig(8) line 115/185 76%[27m[K
11125[K [KESCESC[KOO[KBB
11126[K selves.[m
11127[7m Manual page ifconfig(8) line 116/185 76%[27m[K
11128[K [KESCESC[KOO[KBB
11129[K[m
11130[7m Manual page ifconfig(8) line 117/185 76%[27m[K
11131[K [KESCESC[KOO[KBB
11132[K [1maddress[0m[m
11133[7m Manual page ifconfig(8) line 118/185 77%[27m[K
11134[K [KESCESC[KOO[KBB
11135[K The IP address to be assigned to this interface.[m
11136[7m Manual page ifconfig(8) line 119/185 77%[27m[K
11137[K [KESCESC[KOO[KBB
11138[K[m
11139[7m Manual page ifconfig(8) line 120/185 77%[27m[K
11140[K [KESCESC[KOO[KBB
11141[K [1mtxqueuelen[0m [1mlength[0m[m
11142[7m Manual page ifconfig(8) line 121/185 78%[27m[K
11143[K [KESCESC[KOO[KBB
11144[K Set the length of the transmit queue of the device. It is useful[m
11145[7m Manual page ifconfig(8) line 122/185 79%[27m[K
11146[K [KESCESC[KOO[KBB
11147[K to set this to small values for slower devices with a high[m
11148[7m Manual page ifconfig(8) line 123/185 80%[27m[K
11149[K [KESCESC[KOO[KBB
11150[K latency (modem links, ISDN) to prevent fast bulk transfers from[m
11151[7m Manual page ifconfig(8) line 124/185 80%[27m[K
11152[K [KESCESC[KOO[KBB
11153[K disturbing interactive traffic like telnet too much.[m
11154[7m Manual page ifconfig(8) line 125/185 81%[27m[K
11155[K [KESCESC[KOO[KBB
11156[K[m
11157[7m Manual page ifconfig(8) line 126/185 81%[27m[K
11158[K [KESCESC[KOO[KBB
11159[K[1mNOTES[0m[m
11160[7m Manual page ifconfig(8) line 127/185 81%[27m[K
11161[K [KESCESC[KOO[KBB
11162[K Since kernel release 2.2 there are no explicit interface statistics for[m
11163[7m Manual page ifconfig(8) line 128/185 82%[27m[K
11164[K [KESCESC[KOO[KBB
11165[K alias interfaces anymore. The statistics printed for the original[m
11166[7m Manual page ifconfig(8) line 129/185 83%[27m[K
11167[K [KESCESC[KOO[KBB
11168[K address are shared with all alias addresses on the same device. If you[m
11169[7m Manual page ifconfig(8) line 130/185 84%[27m[K
11170[K [KESCESC[KOO[KBB
11171[K want per-address statistics you should add explicit accounting rules[m
11172[7m Manual page ifconfig(8) line 131/185 85%[27m[K
11173[K [KESCESC[KOO[KBB
11174[K for the address using the [1mipchains[0m(8) or [1miptables[0m(8) command.[m
11175[7m Manual page ifconfig(8) line 132/185 86%[27m[K
11176[K [KESCESC[KOO[KBB
11177[K[m
11178[7m Manual page ifconfig(8) line 133/185 86%[27m[K
11179[K [KESCESC[KOO[KBB
11180[K Interrupt problems with Ethernet device drivers fail with EAGAIN [4m(SIOC‐[24m[m
11181[7m Manual page ifconfig(8) line 134/185 87%[27m[K
11182[K [4mSIIFLAGS:[24m [4mResource[24m [4mtemporarily[24m [4munavailable)[24m it is most likely a inter‐[m
11183 rupt conflict. See [4mhttp://www.scyld.com/expert/irq-conflict.html[24m for[m
11184 more information.[m
11185[m
11186[1mFILES[0m[m
11187 [4m/proc/net/socket[24m[m
11188 [4m/proc/net/dev[24m[m
11189 [4m/proc/net/if_inet6[24m[m
11190[m
11191[1mBUGS[0m[m
11192 While appletalk DDP and IPX addresses will be displayed they cannot be[m
11193 altered by this command.[m
11194[m
11195[1mSEE[0m [1mALSO[0m[m
11196 route(8), netstat(8), arp(8), rarp(8), ipchains(8), iptables(8),[m
11197 ifup(8), interfaces(5).[m
11198 http://physics.nist.gov/cuu/Units/binary.html - Prefixes for binary[m
11199 multiples[m
11200[m
11201[1mAUTHORS[0m[m
11202 Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>[m
11203 Alan Cox, <Alan.Cox@linux.org>[m
11204 Phil Blundell, <Philip.Blundell@pobox.com>[m
11205[7m Manual page ifconfig(8) line 157/185 98%[27m[K
11206[K[?1l>[?1049l]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$ vci[Kon[K[K[K[Ki[Kv [Ki /etc/network/if-c[K[K-
11207if-down.d/ if-post-down.d/ if-pre-up.d/ if-up.d/
11208]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$ vi /etc/network/if-
11209if-down.d/ if-post-down.d/ if-pre-up.d/ if-up.d/
11210]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$ vi /etc/network/if-[K[K[Ki
11211if-down.d/ if-pre-up.d/ interfaces
11212if-post-down.d/ if-up.d/ interfaces~
11213]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$ vi /etc/network/i[Kinterfaces
11214[?1049h[?1h=[1;24r[?12;25h[?12l[?25h[27m[m[H[2J[?25l[24;1H"/etc/network/interfaces" [readonly] 10L, 274C[>c[1;1H[34m# This file describes the network interfaces available on your system
11215# and how to activate them. For more information, see interfaces(5).
11216
11217# The loopback network interface[m
11218auto lo
11219iface lo inet loopback
11220
11221[34m# The primary network interface[m
11222auto control
11223iface control inet dhcp
11224[1m[34m~ [12;1H~ [13;1H~ [14;1H~ [15;1H~ [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# This file describes the network interfaces available on your system
11225# and how to activate them. For more information, see interfaces(5).
11226
11227# The loopback network interface[m
11228auto lo
11229iface lo inet loopback
11230
11231[34m# The primary network interface[m
11232auto control
11233iface control inet dhcp
11234[94m~ [12;1H~ [13;1H~ [14;1H~ [15;1H~ [16;1H~ [17;1H~ [18;1H~ [19;1H~ [20;1H~ [21;1H~ [22;1H~ [23;1H~ [m[24;63H1,1[11CAll
11235"/etc/network/interfaces" [readonly] 10L, 274C[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,0-1[3;1H[?12l[?25h[?25l[24;63H4,1 [4;1H[?12l[?25h[?25l[24;63H5[5;1H[?12l[?25h[?25l[24;63H6[6;1H[?12l[?25h[?25l[24;63H7,0-1[7;1H[?12l[?25h[?25l[24;63H8,1 [8;1H[?12l[?25h[?25l[24;63H9[9;1H[?12l[?25h[?25l[24;63H10,1[10;1H[?12l[?25h[?25l[24;1H[K[24;1H:[?12l[?25hq[?25l[?12l[?25h
11236[?25l[24;1H[K[24;1H[?1l>[?12l[?25h[?1049l]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$ man 5 interfaces
11237[?1049h[?1h=
11238INTERFACES(5) File formats INTERFACES(5)[m
11239[m
11240[1mNAME[0m[m
11241 /etc/network/interfaces - network interface configuration for ifup and[m
11242 ifdown[m
11243[m
11244[1mDESCRIPTION[0m[m
11245 /etc/network/interfaces contains network interface configuration infor‐[m
11246 mation for the [1mifup[0m(8) and [1mifdown[0m(8) commands. This is where you con‐[m
11247 figure how your system is connected to the network.[m
11248[m
11249 Lines starting with `#' are ignored. Note that end-of-line comments are[m
11250 NOT supported, comments must be on a line of their own.[m
11251[m
11252 A line may be extended across multiple lines by making the last charac‐[m
11253 ter a backslash.[m
11254[m
11255 The file consists of zero or more "iface", "mapping", "auto" and[m
11256 "allow-" stanzas. Here is an example.[m
11257 auto lo eth0[m
11258 allow-hotplug eth1[m
11259[m
11260 iface lo inet loopback[m
11261[7m Manual page interfaces(5) line 1[27m[K
11262[K[m
11263 mapping eth0[m
11264 script /usr/local/sbin/map-scheme[m
11265 map HOME eth0-home[m
11266 map WORK eth0-work[m
11267[m
11268 iface eth0-home inet static[m
11269 address 192.168.1.1[m
11270 netmask 255.255.255.0[m
11271 up flush-mail[m
11272[m
11273 iface eth0-work inet dhcp[m
11274[m
11275 iface eth1 inet dhcp[m
11276 Lines beginning with the word "auto" are used to identify the physical[m
11277 interfaces to be brought up when [1mifup[0m is run with the [1m-a[0m option. (This[m
11278 option is used by the system boot scripts.) Physical interface names[m
11279 should follow the word "auto" on the same line. There can be multiple[m
11280 "auto" stanzas. [1mifup[0m brings the named interfaces up in the order[m
11281 listed.[m
11282[m
11283 Lines beginning with "allow-" are used to identify interfaces that[m
11284 should be brought up automatically by various subsytems. This may be[m
11285[7m Manual page interfaces(5) line 26[27m[K
11286[K [KESCESC[KOO[KBB
11287[K done using a command such as "ifup --allow=hotplug eth0 eth1", which[m
11288[7m Manual page interfaces(5) line 27[27m[K
11289[K [KESCESC[KOO[KBB
11290[K will only bring up eth0 or eth1 if it is listed in an "allow-hotplug"[m
11291[7m Manual page interfaces(5) line 28[27m[K
11292[K [KESCESC[KOO[KBB
11293[K line. Note that "allow-auto" and "auto" are synonyms.[m
11294[7m Manual page interfaces(5) line 29[27m[K
11295[K [KESCESC[KOO[KBB
11296[K[m
11297[7m Manual page interfaces(5) line 30[27m[K
11298[K [KESCESC[KOO[KBB
11299[K Stanzas beginning with the word "mapping" are used to determine how a[m
11300[7m Manual page interfaces(5) line 31[27m[K
11301[K [KESCESC[KOO[KBB
11302[K logical interface name is chosen for a physical interface that is to be[m
11303[7m Manual page interfaces(5) line 32[27m[K
11304[K [KESCESC[KOO[KBB
11305[K brought up. The first line of a mapping stanza consists of the word[m
11306[7m Manual page interfaces(5) line 33[27m[K
11307[K [KESCESC[KOO[KBB
11308[K "mapping" followed by a pattern in shell glob syntax. Each mapping[m
11309[7m Manual page interfaces(5) line 34[27m[K
11310[K [KESCESC[KOO[KBB
11311[K stanza must contain a [1mscript[0m definition. The named script is run with[m
11312[7m Manual page interfaces(5) line 35[27m[K
11313[K [KESCESC[KOO[KBB
11314[K the physical interface name as its argument and with the contents of[m
11315[7m Manual page interfaces(5) line 36[27m[K
11316[K [KESCESC[KOO[KBB
11317[K all following "map" lines ([1mwithout[0m the leading "map") in the stanza[m
11318[7m Manual page interfaces(5) line 37[27m[K
11319[K [KESCESC[KOO[KBB
11320[K provided to it on its standard input. The script must print a string on[m
11321[7m Manual page interfaces(5) line 38[27m[K
11322[K [KESCESC[KOO[KBB
11323[K its standard output before exiting. See [4m/usr/share/doc/ifupdown/exam‐[24m[m
11324[7m Manual page interfaces(5) line 39[27m[K
11325[K [KESCESC[KOO[KBB
11326[K [4mples[24m for examples of what the script must print.[m
11327[7m Manual page interfaces(5) line 40[27m[K
11328[K [KESCESC[KOO[KBB
11329[K[m
11330[7m Manual page interfaces(5) line 41[27m[K
11331[K [KESCESC[KOO[KBB
11332[K Mapping a name consists of searching the remaining mapping patterns and[m
11333[7m Manual page interfaces(5) line 42[27m[K
11334[K [KESCESC[KOO[KBB
11335[K running the script corresponding to the first match; the script outputs[m
11336[7m Manual page interfaces(5) line 43[27m[K
11337[K [KESCESC[KOO[KBB
11338[K the name to which the original is mapped.[m
11339[7m Manual page interfaces(5) line 44[27m[K
11340[K [KESCESC[KOO[KBB
11341[K[m
11342[7m Manual page interfaces(5) line 45[27m[K
11343[K [KESCESC[KOO[KBB
11344[K [1mifup[0m is normally given a physical interface name as its first[m
11345[7m Manual page interfaces(5) line 46[27m[K
11346[K [KESCESC[KOO[KBB
11347[K non-option argument. [1mifup[0m also uses this name as the initial logical[m
11348[7m Manual page interfaces(5) line 47[27m[K
11349[K [KESCESC[KOO[KBB
11350[K name for the interface unless it is accompanied by a suffix of the[m
11351[7m Manual page interfaces(5) line 48[27m[K
11352[K [KESCESC[KOO[KBB
11353[K form [4m=LOGICAL[24m, in which case ifup chooses [4mLOGICAL[24m as the initial logi‐[m
11354[7m Manual page interfaces(5) line 49[27m[K
11355[K [KESCESC[KOO[KBB
11356[K cal name for the interface. It then maps this name, possibly more than[m
11357[7m Manual page interfaces(5) line 50[27m[K
11358[K [KESCESC[KOO[KBB
11359[K once according to successive mapping specifications, until no further[m
11360[7m Manual page interfaces(5) line 51[27m[K
11361[K [KESCESC[KOO[KBB
11362[K mappings are possible. If the resulting name is the name of some[m
11363[7m Manual page interfaces(5) line 52[27m[K
11364[K [KESCESC[KOO[KBB
11365[K defined logical interface then [1mifup[0m attempts to bring up the physical[m
11366[7m Manual page interfaces(5) line 53[27m[K
11367[K [KESCESC[KOO[KBB
11368[K interface as that logical interface. Otherwise [1mifup[0m exits with an[m
11369[7m Manual page interfaces(5) line 54[27m[K
11370[K [KESCESC[KOO[KBB
11371[K error.[m
11372[7m Manual page interfaces(5) line 55[27m[K
11373[K [KESCESC[KOO[KBB
11374[K[m
11375[7m Manual page interfaces(5) line 56[27m[K
11376[K [KESCESC[KOO[KBB
11377[K Stanzas defining logical interfaces start with a line consisting of the[m
11378[7m Manual page interfaces(5) line 57[27m[K
11379[K [KESCESC[KOO[KBB
11380[K word "iface" followed by the name of the logical interface. In simple[m
11381[7m Manual page interfaces(5) line 58[27m[K
11382[K [KESCESC[KOO[KBB
11383[K configurations without mapping stanzas this name should simply be the[m
11384[7m Manual page interfaces(5) line 59[27m[K
11385[K [KESCESC[KOO[KBB
11386[K name of the physical interface to which it is to be applied. (The[m
11387[7m Manual page interfaces(5) line 60[27m[K
11388[K [KESCESC[KOO[KBB
11389[K default mapping script is, in effect, the [1mecho[0m command.) The interface[m
11390[7m Manual page interfaces(5) line 61[27m[K
11391[K [KESCESC[KOO[KBB
11392[K name is followed by the name of the address family that the interface[m
11393[7m Manual page interfaces(5) line 62[27m[K
11394[K [KESCESC[KOO[KBB
11395[K uses. This will be "inet" for TCP/IP networking, but there is also[m
11396[7m Manual page interfaces(5) line 63[27m[K
11397[K [KESCESC[KOO[KBB
11398[K some support for IPX networking ("ipx"), and IPv6 networking ("inet6").[m
11399[7m Manual page interfaces(5) line 64[27m[K
11400[K [KESCESC[KOO[KBB
11401[K Following that is the name of the method used to configure the inter‐[m
11402[7m Manual page interfaces(5) line 65[27m[K
11403[K [KESCESC[KOO[KBB
11404[K face.[m
11405[7m Manual page interfaces(5) line 66[27m[K
11406[K [KESCESC[KOO[KBB
11407[K[m
11408[7m Manual page interfaces(5) line 67[27m[K
11409[K [KESCESC[KOO[KBB
11410[K Additional options can be given on subsequent lines in the stanza.[m
11411[7m Manual page interfaces(5) line 68[27m[K
11412[K [KESCESC[KOO[KBB
11413[K Which options are available depends on the family and method, as[m
11414[7m Manual page interfaces(5) line 69[27m[K
11415[K [KESCESC[KOO[KBB
11416[K described below. Additional options can be made available by other[m
11417[7m Manual page interfaces(5) line 70[27m[K
11418[K [KESCESC[KOO[KBB
11419[K Debian packages. For example, the wireless-tools package makes avail‐[m
11420[7m Manual page interfaces(5) line 71[27m[K
11421[K [KESCESC[KOO[KBB
11422[K able a number of options prefixed with "wireless-" which can be used to[m
11423[7m Manual page interfaces(5) line 72[27m[K
11424[K [KESCESC[KOO[KBB
11425[K configure the interface using [1miwconfig[0m(8)[1m.[0m (See [1mwireless[0m(7) for[m
11426[7m Manual page interfaces(5) line 73[27m[K
11427[K [KESCESC[KOO[KBB
11428[K details.)[m
11429[7m Manual page interfaces(5) line 74[27m[K
11430[K [KESCESC[KOO[KBB
11431[K[m
11432[7m Manual page interfaces(5) line 75[27m[K
11433[K [KESCESC[KOO[KBB
11434[K Options are usually indented for clarity (as in the example above) but[m
11435[7m Manual page interfaces(5) line 76[27m[K
11436[K [KESCESC[KOO[KBB
11437[K are not required to be.[m
11438[7m Manual page interfaces(5) line 77[27m[K
11439[K [KESCESC[KOO[KBB
11440[K[m
11441[7m Manual page interfaces(5) line 78[27m[K
11442[K [KESCESC[KOO[KBB
11443[K[1mIFACE[0m [1mOPTIONS[0m[m
11444[7m Manual page interfaces(5) line 79[27m[K
11445[K [KESCESC[KOO[KBB
11446[K The following "command" options are available for every family and[m
11447[7m Manual page interfaces(5) line 80[27m[K
11448[K [KESCESC[KOO[KBB
11449[K method. Each of these options can be given multiple times in a single[m
11450[7m Manual page interfaces(5) line 81[27m[K
11451[K [KESCESC[KOO[KBB
11452[K stanza, in which case the commands are executed in the order in which[m
11453[7m Manual page interfaces(5) line 82[27m[K
11454[K [KESCESC[KOO[KBB
11455[K they appear in the stanza. (You can ensure a command never fails by[m
11456[7m Manual page interfaces(5) line 83[27m[K
11457[K [KESCESC[KOO[KBB
11458[K suffixing "|| true".)[m
11459[7m Manual page interfaces(5) line 84[27m[K
11460[K [KESCESC[KOO[KBB
11461[K[m
11462[7m Manual page interfaces(5) line 85[27m[K
11463[K [KESCESC[KOO[KBB
11464[K [1mpre-up[0m [4mcommand[24m[m
11465[7m Manual page interfaces(5) line 86[27m[K
11466[K [KESCESC[KOO[KBB
11467[K Run [4mcommand[24m before bringing the interface up. If this command[m
11468[7m Manual page interfaces(5) line 87[27m[K
11469[K [KESCESC[KOO[KBB
11470[K fails then [1mifup[0m aborts, refraining from marking the interface as[m
11471[7m Manual page interfaces(5) line 88[27m[K
11472[K [KESCESC[KOO[KBB
11473[K configured, prints an error message, and exits with status 0.[m
11474[7m Manual page interfaces(5) line 89[27m[K
11475[K [KESCESC[KOO[KBB
11476[K This behavior may change in the future.[m
11477[7m Manual page interfaces(5) line 90[27m[K
11478[K [KESCESC[KOO[KBB
11479[K[m
11480[7m Manual page interfaces(5) line 91[27m[K
11481[K [KESCESC[KOO[KBB
11482[K [1mup[0m [4mcommand[24m[m
11483[7m Manual page interfaces(5) line 92[27m[K
11484[K [KESCESC[KOO[KBB
11485[K[m
11486[7m Manual page interfaces(5) line 93[27m[K
11487[K [KESCESC[KOO[KBB
11488[K [1mpost-up[0m [4mcommand[24m[m
11489[7m Manual page interfaces(5) line 94[27m[K
11490[K [KESCESC[KOO[KBB
11491[K Run [4mcommand[24m after bringing the interface up. If this command[m
11492[7m Manual page interfaces(5) line 95[27m[K
11493[K [KESCESC[KOO[KBB
11494[K fails then [1mifup[0m aborts, refraining from marking the interface as[m
11495[7m Manual page interfaces(5) line 96[27m[K
11496[K [KESCESC[KOO[KBB
11497[K configured (even though it has really been configured), prints[m
11498[7m Manual page interfaces(5) line 97[27m[K
11499[K [KESCESC[KOO[KBB
11500[K an error message, and exits with status 0. This behavior may[m
11501[7m Manual page interfaces(5) line 98[27m[K
11502[K [KESCESC[KOO[KBB
11503[K change in the future.[m
11504[7m Manual page interfaces(5) line 99[27m[K
11505[K [KESCESC[KOO[KBB
11506[K[m
11507[7m Manual page interfaces(5) line 100[27m[K
11508[K [KESCESC[KOO[KBB
11509[K [1mdown[0m [4mcommand[24m[m
11510[7m Manual page interfaces(5) line 101[27m[K
11511[K [KESCESC[KOO[KBB
11512[K[m
11513[7m Manual page interfaces(5) line 102[27m[K
11514[K [KESCESC[KOO[KBB
11515[K [1mpre-down[0m [4mcommand[24m[m
11516[7m Manual page interfaces(5) line 103[27m[K
11517[K [KESCESC[KOO[KBB
11518[K Run [4mcommand[24m before taking the interface down. If this command[m
11519[7m Manual page interfaces(5) line 104[27m[K
11520[K [KESCESC[KOO[KBB
11521[K fails then [1mifdown[0m aborts, marks the interface as deconfigured[m
11522[7m Manual page interfaces(5) line 105[27m[K
11523[K [KESCESC[KOO[KBB
11524[K (even though it has not really been deconfigured), and exits[m
11525[7m Manual page interfaces(5) line 106[27m[K
11526[K [KESCESC[KOO[KBB
11527[K with status 0. This behavior may change in the future.[m
11528[7m Manual page interfaces(5) line 107[27m[K
11529[K [KESCESC[KOO[KBB
11530[K[m
11531[7m Manual page interfaces(5) line 108[27m[K
11532[K [KESCESC[KOO[KBB
11533[K [1mpost-down[0m [4mcommand[24m[m
11534[7m Manual page interfaces(5) line 109[27m[K
11535[K [KESCESC[KOO[KBB
11536[K Run [4mcommand[24m after taking the interface down. If this command[m
11537[7m Manual page interfaces(5) line 110[27m[K
11538[K [KESCESC[KOO[KBB
11539[K fails then [1mifdown[0m aborts, marks the interface as deconfigured,[m
11540[7m Manual page interfaces(5) line 111[27m[K
11541[K [KESCESC[KOO[KBB
11542[K and exits with status 0. This behavior may change in the[m
11543[7m Manual page interfaces(5) line 112[27m[K
11544[K [KESCESC[KOO[KBB
11545[K future.[m
11546[7m Manual page interfaces(5) line 113[27m[K
11547[K [KESCESC[KOO[KBB
11548[K[m
11549[7m Manual page interfaces(5) line 114[27m[K
11550[K [KESCESC[KOO[KBB
11551[K There exists for each of the above mentioned options a directory[m
11552[7m Manual page interfaces(5) line 115[27m[K
11553[K [KESCESC[KOO[KBB
11554[K [4m/etc/network/if-[24m[1m<option>[0m[4m.d/[24m the scripts in which are run (with no argu‐[m
11555[7m Manual page interfaces(5) line 116[27m[K
11556[K [KESCESC[KOO[KBB
11557[K ments) using [1mrun-parts[0m(8) after the option itself has been processed.[m
11558[7m Manual page interfaces(5) line 117[27m[K
11559[K [KESCESC[KOO[KBB
11560[K[m
11561[7m Manual page interfaces(5) line 118[27m[K
11562[K [KESCESC[KOO[KBB
11563[K All of these commands have access to the following environment vari‐[m
11564[7m Manual page interfaces(5) line 119[27m[K
11565[K [KESCESC[KOO[KBB
11566[K ables.[m
11567[7m Manual page interfaces(5) line 120[27m[K
11568[K [KESCESC[KOO[KBB
11569[K[m
11570[7m Manual page interfaces(5) line 121[27m[K
11571[K [KESCESC[KOO[KBB
11572[K [1mIFACE[0m physical name of the interface being processed[m
11573[7m Manual page interfaces(5) line 122[27m[K
11574[K [KESCESC[KOO[KBB
11575[K[m
11576[7m Manual page interfaces(5) line 123[27m[K
11577[K [KESCESC[KOO[KBB
11578[K [1mLOGICAL[0m[m
11579[7m Manual page interfaces(5) line 124[27m[K
11580[K [KESCESC[KOO[KBB
11581[K logical name of the interface being processed[m
11582[7m Manual page interfaces(5) line 125[27m[K
11583[K [KESCESC[KOO[KBB
11584[K[m
11585[7m Manual page interfaces(5) line 126[27m[K
11586[K [KESCESC[KOO[KBB
11587[K [1mADDRFAM[0m[m
11588[7m Manual page interfaces(5) line 127[27m[K
11589[K [KESCESC[KOO[KBB
11590[K address family of the interface[m
11591[7m Manual page interfaces(5) line 128[27m[K
11592[K [KESCESC[KOO[KBB
11593[K[m
11594[7m Manual page interfaces(5) line 129[27m[K
11595[K [KESCESC[KOO[KBB
11596[K [1mMETHOD[0m method of the interface (e.g., [4mstatic[24m)[m
11597[7m Manual page interfaces(5) line 130[27m[K
11598[K [KESCESC[KOO[KBB
11599[K[m
11600[7m Manual page interfaces(5) line 131[27m[K
11601[K [KESCESC[KOO[KBB
11602[K [1mMODE[0m [4mstart[24m if run from ifup, [4mstop[24m if run from ifdown[m
11603[7m Manual page interfaces(5) line 132[27m[K
11604[K [KESCESC[KOO[KBB
11605[K[m
11606[7m Manual page interfaces(5) line 133[27m[K
11607[K [KESCESC[KOO[KBB
11608[K [1mPHASE[0m as per MODE, but with finer granularity, distinguishing the [4mpre-[24m[m
11609[7m Manual page interfaces(5) line 134[27m[K
11610[K [KESCESC[KOO[KBB
11611[K [4mup[24m, [4mpost-up[24m, [4mpre-down[24m and [4mpost-down[24m phases.[m
11612[7m Manual page interfaces(5) line 135[27m[K
11613[K [KESCESC[KOO[KBB
11614[K[m
11615[7m Manual page interfaces(5) line 136[27m[K
11616[K [KESCESC[KOO[KBB
11617[K [1mVERBOSITY[0m[m
11618[7m Manual page interfaces(5) line 137[27m[K
11619[K [KESCESC[KOO[KBB
11620[K indicates whether [1m--verbose[0m was used; set to 1 if so, 0 if not.[m
11621[7m Manual page interfaces(5) line 138[27m[K
11622[K [KESCESC[KOO[KBB
11623[K[m
11624[7m Manual page interfaces(5) line 139[27m[K
11625[K [KESCESC[KOO[KBB
11626[K [1mPATH[0m the command search path: [4m/usr/local/sbin:/usr/local/bin:‐[24m[m
11627[7m Manual page interfaces(5) line 140[27m[K
11628[K [KESCESC[KOO[KBB
11629[K [4m/usr/sbin:/usr/bin:/sbin:/bin[24m[m
11630[7m Manual page interfaces(5) line 141[27m[K
11631[K [KESCESC[KOO[KBB
11632[K[m
11633[7m Manual page interfaces(5) line 142[27m[K
11634[K [KESCESC[KOO[KBB
11635[K Additionally, all options given in an interface definition stanza are[m
11636[7m Manual page interfaces(5) line 143[27m[K
11637[K [KESCESC[KOO[KBB
11638[K exported to the environment in upper case with "IF_" prepended and with[m
11639[7m Manual page interfaces(5) line 144[27m[K
11640[K [KESCESC[KOO[KBB
11641[K hyphens converted to underscores and non-alphanumeric characters dis‐[m
11642[7m Manual page interfaces(5) line 145[27m[K
11643[K [KESCESC[KOO[KBB
11644[K carded.[m
11645[7m Manual page interfaces(5) line 146[27m[K
11646[K [KESCESC[KOO[KBB
11647[K[m
11648[7m Manual page interfaces(5) line 147[27m[K
11649[K [KESCESC[KOO[KBB
11650[K[1mINET[0m [1mADDRESS[0m [1mFAMILY[0m[m
11651[7m Manual page interfaces(5) line 148[27m[K
11652[K [KESCESC[KOO[KBB
11653[K This section documents the methods available in the inet address fam‐[m
11654[7m Manual page interfaces(5) line 149[27m[K
11655[K [KESCESC[KOO[KBB
11656[K ily.[m
11657[7m Manual page interfaces(5) line 150[27m[K
11658[K [KESCESC[KOO[KBB
11659[K[m
11660[7m Manual page interfaces(5) line 151[27m[K
11661[K [KESCESC[KOO[KBB
11662[K [1mThe[0m [1mloopback[0m [1mMethod[0m[m
11663[7m Manual page interfaces(5) line 152[27m[K
11664[K [KESCESC[KOO[KBB
11665[K This method may be used to define the IPv4 loopback interface.[m
11666[7m Manual page interfaces(5) line 153[27m[K
11667[K [KESCESC[KOO[KBB
11668[K[m
11669[7m Manual page interfaces(5) line 154[27m[K
11670[K [KESCESC[KOO[KBB
11671[K [1mOptions[0m[m
11672[7m Manual page interfaces(5) line 155[27m[K
11673[K [KESCESC[KOO[KBB
11674[K[m
11675[7m Manual page interfaces(5) line 156[27m[K
11676[K [KESCESC[KOO[KBB
11677[K (No options)[m
11678[7m Manual page interfaces(5) line 157[27m[K
11679[K [KESCESC[KOO[KBB
11680[K[m
11681[7m Manual page interfaces(5) line 158[27m[K
11682[K [KESCESC[KOO[KBB
11683[K [1mThe[0m [1mstatic[0m [1mMethod[0m[m
11684[7m Manual page interfaces(5) line 159[27m[K
11685[K [KESCESC[KOO[KBB
11686[K This method may be used to define ethernet interfaces with statically[m
11687[7m Manual page interfaces(5) line 160[27m[K
11688[K [KESCESC[KOO[KBB
11689[K allocated IPv4 addresses.[m
11690[7m Manual page interfaces(5) line 161[27m[K
11691[K [KESCESC[KOO[KBB
11692[K[m
11693[7m Manual page interfaces(5) line 162[27m[K
11694[K [KESCESC[KOO[KBB
11695[K [1mOptions[0m[m
11696[7m Manual page interfaces(5) line 163[27m[K
11697[K [KESCESC[KOO[KBB
11698[K[m
11699[7m Manual page interfaces(5) line 164[27m[K
11700[K [KESCESC[KOO[KBB
11701[K [1maddress[0m [4maddress[24m[m
11702[7m Manual page interfaces(5) line 165[27m[K
11703[K [KESCESC[KOO[KBB
11704[K Address (dotted quad) [1mrequired[0m[m
11705[7m Manual page interfaces(5) line 166[27m[K
11706[K [KESCESC[KOO[KBB
11707[K[m
11708[7m Manual page interfaces(5) line 167[27m[K
11709[K [KESCESC[KOO[KBB
11710[K [1mnetmask[0m [4mnetmask[24m[m
11711[7m Manual page interfaces(5) line 168[27m[K
11712[K [KESCESC[KOO[KBB
11713[K Netmask (dotted quad) [1mrequired[0m[m
11714[7m Manual page interfaces(5) line 169[27m[K
11715[K [KESCESC[KOO[KBB
11716[K[m
11717[7m Manual page interfaces(5) line 170[27m[K
11718[K [KESCESC[KOO[KBB
11719[K [1mbroadcast[0m [4mbroadcast_address[24m[m
11720[7m Manual page interfaces(5) line 171[27m[K
11721[K [KESCESC[KOO[KBB
11722[K Broadcast address (dotted quad)[m
11723[7m Manual page interfaces(5) line 172[27m[K
11724[K [KESCESC[KOO[KBB
11725[K[m
11726[7m Manual page interfaces(5) line 173[27m[K
11727[K [KESCESC[KOO[KBB
11728[K [1mnetwork[0m [4mnetwork_address[24m[m
11729[7m Manual page interfaces(5) line 174[27m[K
11730[K [KESCESC[KOO[KBB
11731[K Network address (dotted quad) [1mrequired[0m [1mfor[0m [1m2.0.x[0m [1mkernels[0m[m
11732[7m Manual page interfaces(5) line 175[27m[K
11733[K [KESCESC[KOO[KBB
11734[K[m
11735[7m Manual page interfaces(5) line 176[27m[K
11736[K [KESCESC[KOO[KBB
11737[K [1mmetric[0m [4mmetric[24m[m
11738[7m Manual page interfaces(5) line 177[27m[K
11739[K [KESCESC[KOO[KBB
11740[K Routing metric for default gateway (integer)[m
11741[7m Manual page interfaces(5) line 178[27m[K
11742[K [KESCESC[KOO[KBB
11743[K[m
11744[7m Manual page interfaces(5) line 179[27m[K
11745[K [KESCESC[KOO[KBB
11746[K [1mgateway[0m [4maddress[24m[m
11747[7m Manual page interfaces(5) line 180[27m[K
11748[K [KESCESC[KOO[KBB
11749[K Default gateway (dotted quad)[m
11750[7m Manual page interfaces(5) line 181[27m[K
11751[K [KESCESC[KOO[KBB
11752[K[m
11753[7m Manual page interfaces(5) line 182[27m[K
11754[K [KESCESC[KOO[KBB
11755[K [1mpointopoint[0m [4maddress[24m[m
11756[7m Manual page interfaces(5) line 183[27m[K
11757[K [KESCESC[KOO[KBB
11758[K Address of other end point (dotted quad). Note the spell‐[m
11759[7m Manual page interfaces(5) line 184[27m[K
11760[K [KESCESC[KOO[KBB
11761[K ing of "point-to".[m
11762[7m Manual page interfaces(5) line 185[27m[K
11763[K [KESCESC[KOO[KBB
11764[K[m
11765[7m Manual page interfaces(5) line 186[27m[K
11766[K [KESCESC[KOO[KBB
11767[K [1mmedia[0m [4mtype[24m[m
11768[7m Manual page interfaces(5) line 187[27m[K
11769[K [KESCESC[KOO[KBB
11770[K Medium type, driver dependent[m
11771[7m Manual page interfaces(5) line 188[27m[K
11772[K [KESCESC[KOO[KBB
11773[K[m
11774[7m Manual page interfaces(5) line 189[27m[K
11775[K [KESCESC[KOO[KBB
11776[K [1mhwaddress[0m [4mclass[24m [4maddress[24m[m
11777[7m Manual page interfaces(5) line 190[27m[K
11778[K [KESCESC[KOO[KBB
11779[K Hardware Address. [4mclass[24m is one of [1mether[0m, [1max25[0m, [1mARCnet[0m or[m
11780[7m Manual page interfaces(5) line 191[27m[K
11781[K [KESCESC[KOO[KBB
11782[K [1mnetrom[0m. [4maddress[24m is dependent on the above choice.[m
11783[7m Manual page interfaces(5) line 192[27m[K
11784[K [KESCESC[KOO[KBB
11785[K[m
11786[7m Manual page interfaces(5) line 193[27m[K
11787[K [KESCESC[KOO[KBB
11788[K [1mmtu[0m [4msize[24m[m
11789[7m Manual page interfaces(5) line 194[27m[K
11790[K [KESCESC[KOO[KBB
11791[K MTU size[m
11792[7m Manual page interfaces(5) line 195[27m[K
11793[K [KESCESC[KOO[KBB
11794[K[m
11795[7m Manual page interfaces(5) line 196[27m[K
11796[K [KESCESC[KOO[KBB
11797[K [1mThe[0m [1mmanual[0m [1mMethod[0m[m
11798[7m Manual page interfaces(5) line 197[27m[K
11799[K [KESCESC[KOO[KBB
11800[K This method may be used to define interfaces for which no configuration[m
11801[7m Manual page interfaces(5) line 198[27m[K
11802[K [KESCESC[KOO[KBB
11803[K is done by default. Such interfaces can be configured manually by means[m
11804[7m Manual page interfaces(5) line 199[27m[K
11805[K [KESCESC[KOO[KBB
11806[K of [1mup[0m and [1mdown[0m commands or /etc/network/if-*.d scripts.[m
11807[7m Manual page interfaces(5) line 200[27m[K
11808[K [KESCESC[KOO[KBB
11809[K[m
11810[7m Manual page interfaces(5) line 201[27m[K
11811[K [KESCESC[KOO[KBB
11812[K [1mOptions[0m[m
11813[7m Manual page interfaces(5) line 202[27m[K
11814[K [KESCESC[KOO[KBB
11815[K[m
11816[7m Manual page interfaces(5) line 203[27m[K
11817[K [KESCESC[KOO[KBB
11818[K (No options)[m
11819[7m Manual page interfaces(5) line 204[27m[K
11820[K [KESCESC[KOO[KBB
11821[K[m
11822[7m Manual page interfaces(5) line 205[27m[K
11823[K [KESCESC[KOO[KBB
11824[K [1mThe[0m [1mdhcp[0m [1mMethod[0m[m
11825[7m Manual page interfaces(5) line 206[27m[K
11826[K [KESCESC[KOO[KBB
11827[K This method may be used to obtain an address via DHCP with any of the[m
11828[7m Manual page interfaces(5) line 207[27m[K
11829[K [KESCESC[KOO[KBB
11830[K tools: dhclient, pump, udhcpc, dhcpcd. (They have been listed in their[m
11831[7m Manual page interfaces(5) line 208[27m[K
11832[K [KESCESC[KOO[KBB
11833[K order of precedence.) If you have a complicated DHCP setup you should[m
11834[7m Manual page interfaces(5) line 209[27m[K
11835[K [KESCESC[KOO[KBB
11836[K note that some of these clients use their own configuration files and[m
11837[7m Manual page interfaces(5) line 210[27m[K
11838[K [KESCESC[KOO[KBB
11839[K do not obtain their configuration information via [1mifup[0m.[m
11840[7m Manual page interfaces(5) line 211[27m[K
11841[K [KESCESC[KOO[KBB
11842[K[m
11843[7m Manual page interfaces(5) line 212[27m[K
11844[K [KESCESC[KOO[KBB
11845[K [1mOptions[0m[m
11846[7m Manual page interfaces(5) line 213[27m[K
11847[K [KESCESC[KOO[KBB
11848[K[m
11849[7m Manual page interfaces(5) line 214[27m[K
11850[K [KESCESC[KOO[KBB
11851[K [1mhostname[0m [4mhostname[24m[m
11852[7m Manual page interfaces(5) line 215[27m[K
11853[K [KESCESC[KOO[KBB
11854[K Hostname to be requested (pump, dhcpcd, udhcpc)[m
11855[7m Manual page interfaces(5) line 216[27m[K
11856[K [KESCESC[KOO[KBB
11857[K[m
11858[7m Manual page interfaces(5) line 217[27m[K
11859[K [KESCESC[KOO[KBB
11860[K [1mleasehours[0m [4mleasehours[24m[m
11861[7m Manual page interfaces(5) line 218[27m[K
11862[K [KESCESC[KOO[KBB
11863[K Preferred lease time in hours (pump)[m
11864[7m Manual page interfaces(5) line 219[27m[K
11865[K [KESCESC[KOO[KBB
11866[K[m
11867[7m Manual page interfaces(5) line 220[27m[K
11868[K [KESCESC[KOO[KBB
11869[K [1mleasetime[0m [4mleasetime[24m[m
11870[7m Manual page interfaces(5) line 221[27m[K
11871[K [KESCESC[KOO[KBB
11872[K Preferred lease time in seconds (dhcpcd)[m
11873[7m Manual page interfaces(5) line 222[27m[K
11874[K [KESCESC[KOO[KBB
11875[K[m
11876[7m Manual page interfaces(5) line 223[27m[K
11877[K [KESCESC[KOO[KBB
11878[K [1mvendor[0m [4mvendor[24m[m
11879[7m Manual page interfaces(5) line 224[27m[K
11880[K [KESCESC[KOO[KBB
11881[K Vendor class identifier (dhcpcd)[m
11882[7m Manual page interfaces(5) line 225[27m[K
11883[K [KESCESC[KOO[KBB
11884[K[m
11885[7m Manual page interfaces(5) line 226[27m[K
11886[K [KESCESC[KOO[KBB
11887[K [1mclient[0m [4mclient[24m[m
11888[7m Manual page interfaces(5) line 227[27m[K
11889[K [KESCESC[KOO[KBB
11890[K Client identifier (dhcpcd, udhcpc)[m
11891[7m Manual page interfaces(5) line 228[27m[K
11892[K [KESCESC[KOO[KBB
11893[K[m
11894[7m Manual page interfaces(5) line 229[27m[K
11895[K [KESCESC[KOO[KBB
11896[K [1mhwaddress[0m [4mclass[24m [4maddress[24m[m
11897[7m Manual page interfaces(5) line 230[27m[K
11898[K [KESCESC[KOO[KBB
11899[K Hardware Address. [4mclass[24m is one of [1mether[0m, [1max25[0m, [1mARCnet[0m or[m
11900[7m Manual page interfaces(5) line 231[27m[K
11901[K [KESCESC[KOO[KBB
11902[K [1mnetrom[0m. [4maddress[24m is dependent on this choice.[m
11903[7m Manual page interfaces(5) line 232[27m[K
11904[K [KESCESC[KOO[KBB
11905[K[m
11906[7m Manual page interfaces(5) line 233[27m[K
11907[K [KESCESC[KOO[KBB
11908[K [1mThe[0m [1mbootp[0m [1mMethod[0m[m
11909[7m Manual page interfaces(5) line 234[27m[K
11910[K [KESCESC[KOO[KBB
11911[K This method may be used to obtain an address via bootp.[m
11912[7m Manual page interfaces(5) line 235[27m[K
11913[K [KESCESC[KOO[KBB
11914[K[m
11915[7m Manual page interfaces(5) line 236[27m[K
11916[K [KESCESC[KOO[KBB
11917[K [1mOptions[0m[m
11918[7m Manual page interfaces(5) line 237[27m[K
11919[K [KESCESC[KOO[KBB
11920[K[m
11921[7m Manual page interfaces(5) line 238[27m[K
11922[K [KESCESC[KOO[KBB
11923[K [1mbootfile[0m [4mfile[24m[m
11924[7m Manual page interfaces(5) line 239[27m[K
11925[K [KESCESC[KOO[KBB
11926[K Tell the server to use [4mfile[24m as the bootfile.[m
11927[7m Manual page interfaces(5) line 240[27m[K
11928[K [KESCESC[KOO[KBB
11929[K[m
11930[7m Manual page interfaces(5) line 241[27m[K
11931[K [KESCESC[KOO[KBB
11932[K [1mserver[0m [4maddress[24m[m
11933[7m Manual page interfaces(5) line 242[27m[K
11934[K [KESCESC[KOO[KBB
11935[K Use the IP address [4maddress[24m to communicate with the[m
11936[7m Manual page interfaces(5) line 243[27m[K
11937[K [KESCESC[KOO[KBB
11938[K server.[m
11939[7m Manual page interfaces(5) line 244[27m[K
11940[K [KESCESC[KOO[KBB
11941[K[m
11942[7m Manual page interfaces(5) line 245[27m[K
11943[K [KESCESC[KOO[KBB
11944[K [1mhwaddr[0m [4maddr[24m[m
11945[7m Manual page interfaces(5) line 246[27m[K
11946[K [KESCESC[KOO[KBB
11947[K Use [4maddr[24m as the hardware address instead of whatever it[m
11948[7m Manual page interfaces(5) line 247[27m[K
11949[K [KESCESC[KOO[KBB
11950[K really is.[m
11951[7m Manual page interfaces(5) line 248[27m[K
11952[K [KESCESC[KOO[KBB
11953[K[m
11954[7m Manual page interfaces(5) line 249[27m[K
11955[K [KESCESC[KOO[KBB
11956[K [1mThe[0m [1mppp[0m [1mMethod[0m[m
11957[7m Manual page interfaces(5) line 250[27m[K
11958[K [KESCESC[KOO[KBB
11959[K This method uses pon/poff to configure a PPP interface. See those com‐[m
11960[7m Manual page interfaces(5) line 251[27m[K
11961[K [KESCESC[KOO[KBB
11962[K mands for details.[m
11963[7m Manual page interfaces(5) line 252[27m[K
11964[K [KESCESC[KOO[KBB
11965[K[m
11966[7m Manual page interfaces(5) line 253[27m[K
11967[K [KESCESC[KOO[KBB
11968[K [1mOptions[0m[m
11969[7m Manual page interfaces(5) line 254[27m[K
11970[K [KESCESC[KOO[KBB
11971[K[m
11972[7m Manual page interfaces(5) line 255[27m[K
11973[K [KESCESC[KOO[KBB
11974[K [1mprovider[0m [4mname[24m[m
11975[7m Manual page interfaces(5) line 256[27m[K
11976[K [KESCESC[KOO[KBB
11977[K Use [4mname[24m as the provider (from /etc/ppp/peers).[m
11978[7m Manual page interfaces(5) line 257[27m[K
11979[K [KESCESC[KOO[KBB
11980[K[m
11981[7m Manual page interfaces(5) line 258[27m[K
11982[K [KESCESC[KOO[KBB
11983[K [1mThe[0m [1mwvdial[0m [1mMethod[0m[m
11984[7m Manual page interfaces(5) line 259[27m[K
11985[K [KESCESC[KOO[KBB
11986[K This method uses wvdial to configure a PPP interface. See that command[m
11987[7m Manual page interfaces(5) line 260[27m[K
11988[K [KESCESC[KOO[KBB
11989[K for more details.[m
11990[7m Manual page interfaces(5) line 261[27m[K
11991[K [KESCESC[KOO[KBB
11992[K[m
11993[7m Manual page interfaces(5) line 262[27m[K
11994[K [KESCESC[KOO[KBB
11995[K [1mOptions[0m[m
11996[7m Manual page interfaces(5) line 263[27m[K
11997[K [KESCESC[KOO[KBB
11998[K[m
11999[7m Manual page interfaces(5) line 264[27m[K
12000[K [KESCESC[KOO[KBB
12001[K [1mprovider[0m [4mname[24m[m
12002[7m Manual page interfaces(5) line 265[27m[K
12003[K [KESCESC[KOO[KBB
12004[K Use [4mname[24m as the provider (from /etc/ppp/peers).[m
12005[7m Manual page interfaces(5) line 266[27m[K
12006[K [KESCESC[KOO[KBB
12007[K[m
12008[7m Manual page interfaces(5) line 267[27m[K
12009[K [KESCESC[KOO[KBB
12010[K [1mThe[0m [1mipv4ll[0m [1mMethod[0m[m
12011[7m Manual page interfaces(5) line 268[27m[K
12012[K [KESCESC[KOO[KBB
12013[K This method uses avahi-autoipd to configure an interface with an IPv4[m
12014[7m Manual page interfaces(5) line 269[27m[K
12015[K [KESCESC[KOO[KBB
12016[K Link-Layer address (169.254.0.0/16 family). This method is also known[m
12017[7m Manual page interfaces(5) line 270[27m[K
12018[K [KESCESC[KOO[KBB
12019[K as "APIPA" or "IPAC", and often colloquially referred to as "Zeroconf[m
12020[7m Manual page interfaces(5) line 271[27m[K
12021[K [KESCESC[KOO[KBB
12022[K address".[m
12023[7m Manual page interfaces(5) line 272[27m[K
12024[K [KESCESC[KOO[KBB
12025[K[m
12026[7m Manual page interfaces(5) line 273[27m[K
12027[K [KESCESC[KOO[KBB
12028[K [1mOptions[0m[m
12029[7m Manual page interfaces(5) line 274[27m[K
12030[K [KESCESC[KOO[KBB
12031[K[m
12032[7m Manual page interfaces(5) line 275[27m[K
12033[K [KESCESC[KOO[KBB
12034[K (No options)[m
12035[7m Manual page interfaces(5) line 276[27m[K
12036[K [KESCESC[KOO[KBB
12037[K[m
12038[7m Manual page interfaces(5) line 277[27m[K
12039[K [KESCESC[KOO[KBB
12040[K[1mIPX[0m [1mADDRESS[0m [1mFAMILY[0m[m
12041[7m Manual page interfaces(5) line 278[27m[K
12042[K [KESCESC[KOO[KBB
12043[K This section documents the methods available in the ipx address family.[m
12044[7m Manual page interfaces(5) line 279[27m[K
12045[K [KESCESC[KOO[KBB
12046[K[m
12047[7m Manual page interfaces(5) line 280[27m[K
12048[K [KESCESC[KOO[KBB
12049[K [1mThe[0m [1mstatic[0m [1mMethod[0m[m
12050[7m Manual page interfaces(5) line 281[27m[K
12051[K [KESCESC[KOO[KBB
12052[K This method may be used to setup an IPX interface. It requires the[m
12053[7m Manual page interfaces(5) line 282[27m[K
12054[K [KESCESC[KOO[KBB
12055[K [4mipx_interface[24m command.[m
12056[7m Manual page interfaces(5) line 283[27m[K
12057[K [KESCESC[KOO[KBB
12058[K[m
12059[7m Manual page interfaces(5) line 284[27m[K
12060[K [KESCESC[KOO[KBB
12061[K [1mOptions[0m[m
12062[7m Manual page interfaces(5) line 285[27m[K
12063[K [KESCESC[KOO[KBB
12064[K[m
12065[7m Manual page interfaces(5) line 286[27m[K
12066[K [KESCESC[KOO[KBB
12067[K [1mframe[0m [4mtype[24m[m
12068[7m Manual page interfaces(5) line 287[27m[K
12069[K [KESCESC[KOO[KBB
12070[K [4mtype[24m of ethernet frames to use (e.g. [1m802.2[0m)[m
12071[7m Manual page interfaces(5) line 288[27m[K
12072[K [KESCESC[KOO[KBB
12073[K[m
12074[7m Manual page interfaces(5) line 289[27m[K
12075[K [KESCESC[KOO[KBB
12076[K [1mnetnum[0m [4mid[24m[m
12077[7m Manual page interfaces(5) line 290[27m[K
12078[K [KESCESC[KOO[KBB
12079[K Network number[m
12080[7m Manual page interfaces(5) line 291[27m[K
12081[K [KESCESC[KOO[KBB
12082[K[m
12083[7m Manual page interfaces(5) line 292[27m[K
12084[K [KESCESC[KOO[KBB
12085[K [1mThe[0m [1mdynamic[0m [1mMethod[0m[m
12086[7m Manual page interfaces(5) line 293[27m[K
12087[K [KESCESC[KOO[KBB
12088[K This method may be used to setup an IPX interface dynamically.[m
12089[7m Manual page interfaces(5) line 294[27m[K
12090[K [KESCESC[KOO[KBB
12091[K[m
12092[7m Manual page interfaces(5) line 295[27m[K
12093[K [KESCESC[KOO[KBB
12094[K [1mOptions[0m[m
12095[7m Manual page interfaces(5) line 296[27m[K
12096[K [KESCESC[KOO[KBB
12097[K[m
12098[7m Manual page interfaces(5) line 297[27m[K
12099[K [KESCESC[KOO[KBB
12100[K [1mframe[0m [4mtype[24m[m
12101[7m Manual page interfaces(5) line 298[27m[K
12102[K [KESCESC[KOO[KBB
12103[K [4mtype[24m of ethernet frames to use (e.g. [1m802.2[0m)[m
12104[7m Manual page interfaces(5) line 299[27m[K
12105[K [KESCESC[KOO[KBB
12106[K[m
12107[7m Manual page interfaces(5) line 300[27m[K
12108[K [KESCESC[KOO[KBB
12109[K[1mINET6[0m [1mADDRESS[0m [1mFAMILY[0m[m
12110[7m Manual page interfaces(5) line 301[27m[K
12111[K [KESCESC[KOO[KBB
12112[K This section documents the methods available in the inet6 address fam‐[m
12113[7m Manual page interfaces(5) line 302[27m[K
12114[K [KESCESC[KOO[KBB
12115[K ily.[m
12116[7m Manual page interfaces(5) line 303[27m[K
12117[K [KESCESC[KOO[KBB
12118[K[m
12119[7m Manual page interfaces(5) line 304[27m[K
12120[K [KESCESC[KOO[KBB
12121[K [1mThe[0m [1mloopback[0m [1mMethod[0m[m
12122[7m Manual page interfaces(5) line 305[27m[K
12123[K [KESCESC[KOO[KBB
12124[K This method may be used to define the IPv6 loopback interface.[m
12125[7m Manual page interfaces(5) line 306[27m[K
12126[K [KESCESC[KOO[KBB
12127[K[m
12128[7m Manual page interfaces(5) line 307[27m[K
12129[K [KESCESC[KOO[KBB
12130[K [1mOptions[0m[m
12131[7m Manual page interfaces(5) line 308[27m[K
12132[K [KESCESC[KOO[KBB
12133[K[m
12134[7m Manual page interfaces(5) line 309[27m[K
12135[K [KESCESC[KOO[KBB
12136[K (No options)[m
12137[7m Manual page interfaces(5) line 310[27m[K
12138[K [KESCESC[KOO[KBB
12139[K[m
12140[7m Manual page interfaces(5) line 311[27m[K
12141[K [KESCESC[KOO[KBB
12142[K [1mThe[0m [1mstatic[0m [1mMethod[0m[m
12143[7m Manual page interfaces(5) line 312[27m[K
12144[K [KESCESC[KOO[KBB
12145[K This method may be used to define interfaces with statically assigned[m
12146[7m Manual page interfaces(5) line 313[27m[K
12147[K [KESCESC[KOO[KBB
12148[K IPv6 addresses.[m
12149[7m Manual page interfaces(5) line 314[27m[K
12150[K [KESCESC[KOO[KBB
12151[K[m
12152[7m Manual page interfaces(5) line 315[27m[K
12153[K [KESCESC[KOO[KBB
12154[K [1mOptions[0m[m
12155[7m Manual page interfaces(5) line 316[27m[K
12156[K [KESCESC[KOO[KBB
12157[K[m
12158[7m Manual page interfaces(5) line 317[27m[K
12159[K [KESCESC[KOO[KBB
12160[K [1maddress[0m [4maddress[24m[m
12161[7m Manual page interfaces(5) line 318[27m[K
12162[K [KESCESC[KOO[KBB
12163[K Address (colon delimited) [1mrequired[0m[m
12164[7m Manual page interfaces(5) line 319[27m[K
12165[K [KESCESC[KOO[KBB
12166[K[m
12167[7m Manual page interfaces(5) line 320[27m[K
12168[K [KESCESC[KOO[KBB
12169[K [1mnetmask[0m [4mmask[24m[m
12170[7m Manual page interfaces(5) line 321[27m[K
12171[K [KESCESC[KOO[KBB
12172[K Netmask (number of bits, eg 64) [1mrequired[0m[m
12173[7m Manual page interfaces(5) line 322[27m[K
12174[K [KESCESC[KOO[KBB
12175[K[m
12176[7m Manual page interfaces(5) line 323[27m[K
12177[K [KESCESC[KOO[KBB
12178[K [1mgateway[0m [4maddress[24m[m
12179[7m Manual page interfaces(5) line 324[27m[K
12180[K [KESCESC[KOO[KBB
12181[K Default gateway (colon delimited)[m
12182[7m Manual page interfaces(5) line 325[27m[K
12183[K [KESCESC[KOO[KBB
12184[K[m
12185[7m Manual page interfaces(5) line 326[27m[K
12186[K [KESCESC[KOO[KBB
12187[K [1mmedia[0m [4mtype[24m[m
12188[7m Manual page interfaces(5) line 327[27m[K
12189[K [KESCESC[KOO[KBB
12190[K Medium type, driver dependent[m
12191[7m Manual page interfaces(5) line 328[27m[K
12192[K [KESCESC[KOO[KBB
12193[K[m
12194[7m Manual page interfaces(5) line 329[27m[K
12195[K [KESCESC[KOO[KBB
12196[K [1mhwaddress[0m [4mclass[24m [4maddress[24m[m
12197[7m Manual page interfaces(5) line 330[27m[K
12198[K [KESCESC[KOO[KBB
12199[K Hardware Address. [4mclass[24m is one of [1mether[0m, [1max25[0m, [1mARCnet[0m or[m
12200[7m Manual page interfaces(5) line 331[27m[K
12201[K [KESCESC[KOO[KBB
12202[K [1mnetrom[0m. [4maddress[24m is dependent on this choice.[m
12203[7m Manual page interfaces(5) line 332[27m[K
12204[K [KESCESC[KOO[KBB
12205[K[m
12206[7m Manual page interfaces(5) line 333[27m[K
12207[K [KESCESC[KOO[KBB
12208[K [1mmtu[0m [4msize[24m[m
12209[7m Manual page interfaces(5) line 334[27m[K
12210[K [KESCESC[KOO[KBB
12211[K MTU size[m
12212[7m Manual page interfaces(5) line 335[27m[K
12213[K [KESCESC[KOO[KBB
12214[K[m
12215[7m Manual page interfaces(5) line 336[27m[K
12216[K [KESCESC[KOO[KBB
12217[K [1mThe[0m [1mmanual[0m [1mMethod[0m[m
12218[7m Manual page interfaces(5) line 337[27m[K
12219[K [KESCESC[KOO[KBB
12220[K This method may be used to define interfaces for which no configuration[m
12221[7m Manual page interfaces(5) line 338[27m[K
12222[K [KESCESC[KOO[KBB
12223[K is done by default. Such interfaces can be configured manually by means[m
12224[7m Manual page interfaces(5) line 339[27m[K
12225[K [KESCESC[KOO[KBB
12226[K of [1mup[0m and [1mdown[0m commands or /etc/network/if-*.d scripts.[m
12227[7m Manual page interfaces(5) line 340[27m[K
12228[K [KESCESC[KOO[KBB
12229[K[m
12230[7m Manual page interfaces(5) line 341[27m[K
12231[K [KESCESC[KOO[KBB
12232[K [1mOptions[0m[m
12233[7m Manual page interfaces(5) line 342[27m[K
12234[K [KESCESC[KOO[KBB
12235[K[m
12236[7m Manual page interfaces(5) line 343[27m[K
12237[K [KESCESC[KOO[KBB
12238[K (No options)[m
12239[7m Manual page interfaces(5) line 344[27m[K
12240[K [KESCESC[KOO[KBB
12241[K[m
12242[7m Manual page interfaces(5) line 345[27m[K
12243[K [KESCESC[KOO[KBB
12244[K [1mThe[0m [1mv4tunnel[0m [1mMethod[0m[m
12245[7m Manual page interfaces(5) line 346[27m[K
12246[K [KESCESC[KOO[KBB
12247[K This method may be used to setup an IPv6-over-IPv4 tunnel. It requires[m
12248[7m Manual page interfaces(5) line 347[27m[K
12249[K [KESCESC[KOO[KBB
12250[K the [1mip[0m command from the [1miproute[0m package.[m
12251[7m Manual page interfaces(5) line 348[27m[K
12252[K [KESCESC[KOO[KBB
12253[K[m
12254[7m Manual page interfaces(5) line 349[27m[K
12255[K [KESCESC[KOO[KBB
12256[K [1mOptions[0m[m
12257[7m Manual page interfaces(5) line 350[27m[K
12258[K [KESCESC[KOO[KBB
12259[K[m
12260[7m Manual page interfaces(5) line 351[27m[K
12261[K [KESCESC[KOO[KBB
12262[K [1maddress[0m [4maddress[24m[m
12263[7m Manual page interfaces(5) line 352[27m[K
12264[K [KESCESC[KOO[KBB
12265[K Address (colon delimited)[m
12266[7m Manual page interfaces(5) line 353[27m[K
12267[K [KESCESC[KOO[KBB
12268[K[m
12269[7m Manual page interfaces(5) line 354[27m[K
12270[K [KESCESC[KOO[KBB
12271[K [1mnetmask[0m [4mmask[24m[m
12272[7m Manual page interfaces(5) line 355[27m[K
12273[K [KESCESC[KOO[KBB
12274[K Netmask (number of bits, eg 64)[m
12275[7m Manual page interfaces(5) line 356[27m[K
12276[K [KESCESC[KOO[KBB
12277[K[m
12278[7m Manual page interfaces(5) line 357[27m[K
12279[K [KESCESC[KOO[KBB
12280[K [1mendpoint[0m [4maddress[24m[m
12281[7m Manual page interfaces(5) line 358[27m[K
12282[K [KESCESC[KOO[KBB
12283[K Address of other tunnel endpoint (IPv4 dotted quad)[m
12284[7m Manual page interfaces(5) line 359[27m[K
12285[K [KESCESC[KOO[KBB
12286[K [1mrequired[0m[m
12287[7m Manual page interfaces(5) line 360[27m[K
12288[K [KESCESC[KOO[KBB
12289[K[m
12290[7m Manual page interfaces(5) line 361[27m[K
12291[K [KESCESC[KOO[KBB
12292[K [1mlocal[0m [4maddress[24m[m
12293[7m Manual page interfaces(5) line 362[27m[K
12294[K [KESCESC[KOO[KBB
12295[K Address of the local endpoint (IPv4 dotted quad)[m
12296[7m Manual page interfaces(5) line 363[27m[K
12297[K [KESCESC[KOO[KBB
12298[K[m
12299[7m Manual page interfaces(5) line 364[27m[K
12300[K [KESCESC[KOO[KBB
12301[K [1mgateway[0m [4maddress[24m[m
12302[7m Manual page interfaces(5) line 365[27m[K
12303[K [KESCESC[KOO[KBB
12304[K Default gateway (colon delimited)[m
12305[7m Manual page interfaces(5) line 366[27m[K
12306[K [KESCESC[KOO[KBB
12307[K[m
12308[7m Manual page interfaces(5) line 367[27m[K
12309[K [KESCESC[KOO[KBB
12310[K [1mttl[0m [4mtime[24m[m
12311[7m Manual page interfaces(5) line 368[27m[K
12312[K [KESCESC[KOO[KBB
12313[K TTL setting[m
12314[7m Manual page interfaces(5) line 369[27m[K
12315[K [KESCESC[KOO[KBB
12316[K[m
12317[7m Manual page interfaces(5) line 370[27m[K
12318[K [KESCESC[KOO[KBB
12319[K[1mKNOWN[0m [1mBUGS/LIMITATIONS[0m[m
12320[7m Manual page interfaces(5) line 371[27m[K
12321[K [KESCESC[KOO[KBB
12322[K The [1mifup[0m and [1mifdown[0m programs work with so-called "physical" interface[m
12323[7m Manual page interfaces(5) line 372[27m[K
12324[K [KESCESC[KOO[KBB
12325[K names. These names are assigned to hardware by the kernel. Unfortu‐[m
12326[7m Manual page interfaces(5) line 373[27m[K
12327[K [KESCESC[KOO[KBB
12328[K nately it can happen that the kernel assigns different physical inter‐[m
12329[7m Manual page interfaces(5) line 374[27m[K
12330[K [KESCESC[KOO[KBB
12331[K face names to the same hardware at different times; for example, what[m
12332[7m Manual page interfaces(5) line 375[27m[K
12333[K [KESCESC[KOO[KBB
12334[K was called "eth0" last time you booted is now called "eth1" and vice[m
12335[7m Manual page interfaces(5) line 376[27m[K
12336[K [KESCESC[KOO[KBB
12337[K versa. This creates a problem if you want to configure the interfaces[m
12338[7m Manual page interfaces(5) line 377[27m[K
12339[K [KESCESC[KOO[KBB
12340[K appropriately. A way to deal with this problem is to use mapping[m
12341[7m Manual page interfaces(5) line 378[27m[K
12342[K [KESCESC[KOO[KBB
12343[K scripts that choose logical interface names according to the properties[m
12344[7m Manual page interfaces(5) line 379[27m[K
12345[K [KESCESC[KOO[KBB
12346[K of the interface hardware. See the [1mget-mac-address.sh[0m script in the[m
12347[7m Manual page interfaces(5) line 380[27m[K
12348[K [KESCESC[KOO[KBB
12349[K examples directory for an example of such a mapping script. See also[m
12350[7m Manual page interfaces(5) line 381[27m[K
12351[K [KESCESC[KOO[KBB
12352[K Debian bug #101728.[m
12353[7m Manual page interfaces(5) line 382[27m[K
12354[K [KESCESC[KOO[KBB
12355[K[m
12356[7m Manual page interfaces(5) line 383[27m[K
12357[K [KESCESC[KOO[KBB
12358[K It is not currently possible to divide up [1m/etc/network/interfaces[0m into[m
12359[7m Manual page interfaces(5) line 384[27m[K
12360[K [KESCESC[KOO[KBB
12361[K multiple files. A feature that would make this possible is some sort[m
12362[7m Manual page interfaces(5) line 385[27m[K
12363[K [KESCESC[KOO[KBB
12364[K of inclusion directive. No such feature exists in the current ifupdown[m
12365[7m Manual page interfaces(5) line 386[27m[K
12366[K [KESCESC[KOO[KBB
12367[K program. For more information see Debian bug #159884.[m
12368[7m Manual page interfaces(5) line 387[27m[K
12369[K [KESCESC[KOO[KBB
12370[K[m
12371[7m Manual page interfaces(5) line 388[27m[K
12372[K [KESCESC[KOO[KBB
12373[K[1mAUTHOR[0m[m
12374[7m Manual page interfaces(5) line 389[27m[K
12375[K [KESCESC[KOO[KBB
12376[K The ifupdown suite was written by Anthony Towns <aj@azure.hum‐[m
12377[7m Manual page interfaces(5) line 390[27m[K
12378[K [KESCESC[KOO[KBB
12379[K bug.org.au>. This manpage was contributed by Joey Hess[m
12380[7m Manual page interfaces(5) line 391[27m[K
12381[K [KESCESC[KOO[KBB
12382[K <joey@kitenet.net>.[m
12383[7m Manual page interfaces(5) line 392[27m[K
12384[K [KESCESC[KOO[KBB
12385[K[m
12386[7m Manual page interfaces(5) line 393[27m[K
12387[K [KESCESC[KOO[KBB
12388[K[1mSEE[0m [1mALSO[0m[m
12389[7m Manual page interfaces(5) line 394[27m[K
12390[K [KESCESC[KOO[KBB
12391[K [1mifup[0m(8), [1miwconfig[0m(8), [1mrun-parts[0m(8).[m
12392[7m Manual page interfaces(5) line 395[27m[K
12393[K [KESCESC[KOO[KBB
12394[K[m
12395[7m Manual page interfaces(5) line 396[27m[K
12396[K [KESCESC[KOO[KBB
12397[K For advice on configuring this package read the [1mNetwork[0m [1mConfiguration[0m[m
12398[7m Manual page interfaces(5) line 397[27m[K
12399[K [KESCESC[KOO[KBB
12400[K chapter of the [4mDebian[24m [4mReference[24m manual, available at[m
12401[7m Manual page interfaces(5) line 398[27m[K
12402[K [KESCESC[KOO[KBB
12403[K [4mhttp://www.debian.org/doc/manuals/reference/ch-gateway.en.html[24m or in[m
12404[7m Manual page interfaces(5) line 399[27m[K
12405[K [KESCESC[KOO[KBB
12406[K the [1mdebian-reference-en[0m package.[m
12407[7m Manual page interfaces(5) line 400[27m[K
12408[K [KESCESC[KOO[KBB
12409[K[m
12410[7m Manual page interfaces(5) line 401[27m[K
12411[K [KESCESC[KOO[KBB
12412[K Examples of how to set up interfaces can be found in[m
12413[7m Manual page interfaces(5) line 402[27m[K
12414[K [KESCESC[KOO[KBB
12415[K [1m/usr/share/doc/ifupdown/examples/network-interfaces.gz[0m.[m
12416[7m Manual page interfaces(5) line 403[27m[K
12417[K [KESCESC[KOO[KBB
12418[K[m
12419[7m Manual page interfaces(5) line 404[27m[K
12420[K [KESCESC[KOO[KBB
12421[Kifupdown 5 April 2004 INTERFACES(5)[m
12422[7m Manual page interfaces(5) line 405[27m[K
12423[K [KESCESC[KOO[KBB
12424[K
12425[K[7m Manual page interfaces(5) line 405/429 (END)[27m[K
12426[K [KESCESC[KOO[KBB
12427[K
12428[K[7m Manual page interfaces(5) line 405/429 (END)[27m[K
12429[K [KESCESC[KOO[KBB
12430[K
12431[K[7m Manual page interfaces(5) line 405/429 (END)[27m[K
12432[K [KESCESC[KOO[KBB
12433[K
12434[K[7m Manual page interfaces(5) line 405/429 (END)[27m[K
12435[K [KESCESC[KOO[KBB
12436[K
12437[K[7m Manual page interfaces(5) line 405/429 (END)[27m[K
12438[K [KESCESC[KOO[KBB
12439[K
12440[K[7m Manual page interfaces(5) line 405/429 (END)[27m[K
12441[K [KESCESC[KOO[KBB
12442[K
12443[K[7m Manual page interfaces(5) line 405/429 (END)[27m[K
12444[K [KESCESC[KOO[KBB
12445[K
12446[K[7m Manual page interfaces(5) line 405/429 (END)[27m[K
12447[K [KESCESC[KOO[KBB
12448[K
12449[K[7m Manual page interfaces(5) line 405/429 (END)[27m[K
12450[K [KESCESC[KOO[KBB
12451[K
12452[K[7m Manual page interfaces(5) line 405/429 (END)[27m[K
12453[K [KESCESC[KOO[KBB
12454[K
12455[K[7m Manual page interfaces(5) line 405/429 (END)[27m[K
12456[K [KESCESC[KOO[KBB
12457[K
12458[K[7m Manual page interfaces(5) line 405/429 (END)[27m[K
12459[K [KESCESC[KOO[KBB
12460[K
12461[K[7m Manual page interfaces(5) line 405/429 (END)[27m[K
12462[K [KESCESC[KOO[KBB
12463[K
12464[K[7m Manual page interfaces(5) line 405/429 (END)[27m[K
12465[K [KESCESC[KOO[KBB
12466[K
12467[K[7m Manual page interfaces(5) line 405/429 (END)[27m[K
12468[K[H[2J[HM iface lo inet loopback[m
12469[HM[m
12470[HM allow-hotplug eth1[m
12471[HM auto lo eth0[m
12472[HM "allow-" stanzas. Here is an example.[m
12473[HM The file consists of zero or more "iface", "mapping", "auto" and[m
12474[HM[m
12475[HM ter a backslash.[m
12476[HM A line may be extended across multiple lines by making the last charac‐[m
12477[HM[m
12478[HM NOT supported, comments must be on a line of their own.[m
12479[HM Lines starting with `#' are ignored. Note that end-of-line comments are[m
12480[HM[m
12481[HM figure how your system is connected to the network.[m
12482[HM mation for the [1mifup[0m(8) and [1mifdown[0m(8) commands. This is where you con‐[m
12483[HM /etc/network/interfaces contains network interface configuration infor‐[m
12484[HM[1mDESCRIPTION[0m[m
12485[HM[m
12486[HM ifdown[m
12487[HM /etc/network/interfaces - network interface configuration for ifup and[m
12488[HM[1mNAME[0m[m
12489[HM[m
12490[HMINTERFACES(5) File formats INTERFACES(5)[m
12491[24;1H
12492[K[7m Manual page interfaces(5) line 1/429 4%[27m[K
12493[K/[Kvv[Kll[Kaa[Knn
12494[K[1;1HINTERFACES(5) File formats INTERFACES(5)[m
12495[2;1H[m
12496[3;1H[1mNAME[0m[m
12497[4;1H /etc/network/interfaces - network interface configuration for ifup and[m
12498[5;1H ifdown[m
12499[6;1H[m
12500[7;1H[1mDESCRIPTION[0m[m
12501[8;1H /etc/network/interfaces contains network interface configuration infor‐[m
12502[9;1H mation for the [1mifup[0m(8) and [1mifdown[0m(8) commands. This is where you con‐[m
12503[10;1H figure how your system is connected to the network.[m
12504[11;1H[m
12505[12;1H Lines starting with `#' are ignored. Note that end-of-line comments are[m
12506[13;1H NOT supported, comments must be on a line of their own.[m
12507[14;1H[m
12508[15;1H A line may be extended across multiple lines by making the last charac‐[m
12509[16;1H ter a backslash.[m
12510[17;1H[m
12511[18;1H The file consists of zero or more "iface", "mapping", "auto" and[m
12512[19;1H "allow-" stanzas. Here is an example.[m
12513[20;1H auto lo eth0[m
12514[21;1H allow-hotplug eth1[m
12515[22;1H[m
12516[23;1H iface lo inet loopback[m
12517[24;1H[1;1HINTERFACES(5) File formats INTERFACES(5)[m
12518[2;1H[m
12519[3;1H[1mNAME[0m[m
12520[4;1H /etc/network/interfaces - network interface configuration for ifup and[m
12521[5;1H ifdown[m
12522[6;1H[m
12523[7;1H[1mDESCRIPTION[0m[m
12524[8;1H /etc/network/interfaces contains network interface configuration infor‐[m
12525[9;1H mation for the [1mifup[0m(8) and [1mifdown[0m(8) commands. This is where you con‐[m
12526[10;1H figure how your system is connected to the network.[m
12527[11;1H[m
12528[12;1H Lines starting with `#' are ignored. Note that end-of-line comments are[m
12529[13;1H NOT supported, comments must be on a line of their own.[m
12530[14;1H[m
12531[15;1H A line may be extended across multiple lines by making the last charac‐[m
12532[16;1H ter a backslash.[m
12533[17;1H[m
12534[18;1H The file consists of zero or more "iface", "mapping", "auto" and[m
12535[19;1H "allow-" stanzas. Here is an example.[m
12536[20;1H auto lo eth0[m
12537[21;1H allow-hotplug eth1[m
12538[22;1H[m
12539[23;1H iface lo inet loopback[m
12540[24;1H
12541[K[7mPattern not found (press RETURN)[27m[24;1H
12542[K/[KVV[KLL[KAA[KNN
12543[K[1;1HINTERFACES(5) File formats INTERFACES(5)[m
12544[2;1H[m
12545[3;1H[1mNAME[0m[m
12546[4;1H /etc/network/interfaces - network interface configuration for ifup and[m
12547[5;1H ifdown[m
12548[6;1H[m
12549[7;1H[1mDESCRIPTION[0m[m
12550[8;1H /etc/network/interfaces contains network interface configuration infor‐[m
12551[9;1H mation for the [1mifup[0m(8) and [1mifdown[0m(8) commands. This is where you con‐[m
12552[10;1H figure how your system is connected to the network.[m
12553[11;1H[m
12554[12;1H Lines starting with `#' are ignored. Note that end-of-line comments are[m
12555[13;1H NOT supported, comments must be on a line of their own.[m
12556[14;1H[m
12557[15;1H A line may be extended across multiple lines by making the last charac‐[m
12558[16;1H ter a backslash.[m
12559[17;1H[m
12560[18;1H The file consists of zero or more "iface", "mapping", "auto" and[m
12561[19;1H "allow-" stanzas. Here is an example.[m
12562[20;1H auto lo eth0[m
12563[21;1H allow-hotplug eth1[m
12564[22;1H[m
12565[23;1H iface lo inet loopback[m
12566[24;1H[1;1HINTERFACES(5) File formats INTERFACES(5)[m
12567[2;1H[m
12568[3;1H[1mNAME[0m[m
12569[4;1H /etc/network/interfaces - network interface configuration for ifup and[m
12570[5;1H ifdown[m
12571[6;1H[m
12572[7;1H[1mDESCRIPTION[0m[m
12573[8;1H /etc/network/interfaces contains network interface configuration infor‐[m
12574[9;1H mation for the [1mifup[0m(8) and [1mifdown[0m(8) commands. This is where you con‐[m
12575[10;1H figure how your system is connected to the network.[m
12576[11;1H[m
12577[12;1H Lines starting with `#' are ignored. Note that end-of-line comments are[m
12578[13;1H NOT supported, comments must be on a line of their own.[m
12579[14;1H[m
12580[15;1H A line may be extended across multiple lines by making the last charac‐[m
12581[16;1H ter a backslash.[m
12582[17;1H[m
12583[18;1H The file consists of zero or more "iface", "mapping", "auto" and[m
12584[19;1H "allow-" stanzas. Here is an example.[m
12585[20;1H auto lo eth0[m
12586[21;1H allow-hotplug eth1[m
12587[22;1H[m
12588[23;1H iface lo inet loopback[m
12589[24;1H
12590[K[7mPattern not found (press RETURN)[27m[24;1H
12591[K[?1l>[?1049l]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$ lovate [K[K[K[K[Kcate vconfig
12592/usr/lib/python2.5/site-packages/landscape/sysvconfig.py
12593/usr/lib/python2.6/dist-packages/landscape/sysvconfig.py
12594/usr/lib/python2.6/dist-packages/landscape/sysvconfig.pyc
12595/usr/sbin/iconvconfig
12596/usr/share/man/man8/iconvconfig.8.gz
12597/usr/share/pyshared/landscape/sysvconfig.py
12598]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$ man iconvconfig
12599[?1049h[?1h=
12600ICONVCONFIG(8) Debian ICONVCONFIG(8)[m
12601[m
12602[1mNAME[0m[m
12603 iconvconfig - Create fastloading iconv module configuration file[m
12604[m
12605[1mSYNOPSIS[0m[m
12606 iconvconfig [OPTION...] [DIR...][m
12607[m
12608[1mDESCRIPTION[0m[m
12609 The [1miconvconfig[0m program generates a cache that internationalised[m
12610 applications can use to reduce loading time.[m
12611[m
12612 [1m--prefix[0m [4mPATH[24m[m
12613 Prefix used for all file accesses[m
12614[m
12615[1mAUTHOR[0m[m
12616 [4miconvconfig[24m was written by Ulrich Drepper as part of the GNU C Library.[m
12617[m
12618 This man page was written by Jeff Bailey <jbailey@debian.org>.[m
12619[m
126203rd Berkeley Distribution November 2003 ICONVCONFIG(8)[m
12621[7m Manual page iconvconfig(8) line 1/31 (END)[27m[K
12622[K[?1l>[?1049l]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$ sudo apt-get -[Kii[K[K[K[K[K[K[K[K[K[K[K[K[K[Kudo /sv[K[K[Kmodprobe 8021q
12623]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$ in[K[Klsmod | more
12624Module Size Used by
126258021q 20864 0
12626garp 8092 1 8021q
12627stp 2272 1 garp
12628snd_hda_codec_nvhdmi 4828 1
12629snd_hda_codec_via 28988 1
12630ppdev 6688 0
12631asus_atk0110 8252 0
12632psmouse 56500 0
12633serio_raw 5280 0
12634lp 8964 0
12635video 19380 0
12636output 2780 1 video
12637parport_pc 31940 1
12638parport 35340 3 ppdev,lp,parport_pc
12639shpchp 32272 0
12640i2c_nforce2 6784 0
12641snd_hda_intel 26920 0
12642nf2 15208 0
12643snd_hda_codec 75708 3 snd_hda_codec_nvhdmi,snd_hda_codec_via,snd_hda_i
12644ntel
12645iptable_filter 3100 0
12646ip_tables 11692 1 iptable_filter
12647[7m--More--[27m
12648evbug 2588 0
12649pcspkr 2332 0
12650snd_hwdep 7200 1 snd_hda_codec
12651snd_pcm 75296 2 snd_hda_intel,snd_hda_codec
12652snd_timer 22276 1 snd_pcm
12653snd 59204 5 snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,sn
12654d_timer
12655soundcore 7264 1 snd
12656x_tables 16544 1 ip_tables
12657snd_page_alloc 9156 2 snd_hda_intel,snd_pcm
12658floppy 54916 0
12659e1000e 122188 0
12660]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$
12661]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$
12662]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$
12663]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$ sudo apt=ge[K[K[K-get install[K[K[K[K[K[K[K[K[K[K[K[K[K[K[K[K[K[K[K[Kapt-cache search vconfig
12664libc-bin - GNU C Library: Binaries
12665]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$ sudo apt-get install vconfig
12666
12667Reading package lists... 0%
12668
12669Reading package lists... 100%
12670
12671Reading package lists... Done
12672
12673
12674Building dependency tree... 0%
12675
12676Building dependency tree... 0%
12677
12678Building dependency tree... 50%
12679
12680Building dependency tree... 50%
12681
12682Building dependency tree
12683
12684
12685Reading state information... 0%
12686
12687Reading state information... 0%
12688
12689Reading state information... Done
12690
12691E: Couldn't find package vconfig
12692]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$
12693]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$
12694]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$
12695]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$ sudo apt-get install vconfig[K[K[K[K[K[Klan
12696
12697Reading package lists... 0%
12698
12699Reading package lists... 100%
12700
12701Reading package lists... Done
12702
12703
12704Building dependency tree... 0%
12705
12706Building dependency tree... 0%
12707
12708Building dependency tree... 50%
12709
12710Building dependency tree... 50%
12711
12712Building dependency tree
12713
12714
12715Reading state information... 0%
12716
12717Reading state information... 0%
12718
12719Reading state information... Done
12720
12721The following NEW packages will be installed:
12722 vlan
127230 upgraded, 1 newly installed, 0 to remove and 38 not upgraded.
12724Need to get 40.2kB of archives.
12725After this operation, 180kB of additional disk space will be used.
12726
12727
127280% [Working]
12729
12730Get:1 http://apt karmic/main vlan 1.9-3build1 [40.2kB]
12731
12732
127330% [1 vlan 0/40.2kB 0%]
12734
12735100% [Working]
12736
12737Fetched 40.2kB in 0s (53.7kB/s)
12738Selecting previously deselected package vlan.
12739(Reading database ...
12740(Reading database ... 5%
12741(Reading database ... 10%
12742(Reading database ... 15%
12743(Reading database ... 20%
12744(Reading database ... 25%
12745(Reading database ... 30%
12746(Reading database ... 35%
12747(Reading database ... 40%
12748(Reading database ... 45%
12749(Reading database ... 50%
12750(Reading database ... 55%
12751(Reading database ... 60%
12752(Reading database ... 65%
12753(Reading database ... 70%
12754(Reading database ... 75%
12755(Reading database ... 80%
12756(Reading database ... 85%
12757(Reading database ... 90%
12758(Reading database ... 95%
12759(Reading database ... 100%
12760(Reading database ... 53061 files and directories currently installed.)
12761Unpacking vlan (from .../vlan_1.9-3build1_i386.deb) ...
12762Processing triggers for man-db ...
12763Setting up vlan (1.9-3build1) ...
12764]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$
12765]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$
12766]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$
12767]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$ vcon[K[K[K[Kl[Kupdate[K[K[K[K[K[Ksudo a[Kupdatedb
12768]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$ apt[K[K[Klocate con[K[K[Kvconfig
12769/sbin/vconfig
12770/usr/lib/python2.5/site-packages/landscape/sysvconfig.py
12771/usr/lib/python2.5/site-packages/landscape/sysvconfig.pyc
12772/usr/lib/python2.6/dist-packages/landscape/sysvconfig.py
12773/usr/lib/python2.6/dist-packages/landscape/sysvconfig.pyc
12774/usr/sbin/iconvconfig
12775/usr/share/man/man8/iconvconfig.8.gz
12776/usr/share/man/man8/vconfig.8.gz
12777/usr/share/pyshared/landscape/sysvconfig.py
12778]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$ vcon[K[K[K[Ksudp [K[Ki[Ko vc
12779vconfig vcstime
12780]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$ sudo vconfig [K[K[K[K[K[K[K[K[K[K[K[K[Kclear
12781[H[2J]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$ pwd
12782/home/netfpga/netfpga/projects/selftest/src
12783]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$ ls
12784aurora_framing_aurora_lane.v nf2_rxfifo_sm.v
12785aurora_framing_channel_error_detect.v nf2_sram_sm_fast.v
12786aurora_framing_channel_init_sm.v nf2_sram_sm.v
12787aurora_framing_chbond_count_dec.v nf2_top.v
12788aurora_framing_error_detect.v nf2_txfifo_sm.v
12789aurora_framing_frame_check.v phy_test_pktcmp.v
12790aurora_framing_frame_gen.v phy_test_pktgen.v
12791aurora_framing_global_logic.v phy_test_pktsrc.v
12792aurora_framing_idle_and_ver_gen.v phy_test_port_ctrl.v
12793aurora_framing_lane_init_sm.v phy_test_port_grp.v
12794aurora_framing_phase_align.v phy_test_reg.v
12795aurora_framing_rx_ll_nfc.v phy_test_rx_log_reg.v
12796aurora_framing_rx_ll_pdu_datapath.v phy_test_rx_reg.v
12797aurora_framing_rx_ll.v phy_test_tx_reg.v
12798aurora_framing_standard_cc_module.v phy_test.v
12799aurora_framing_sym_dec.v reg_addr_reflect.v
12800aurora_framing_sym_gen.v reg_file_test.v
12801aurora_framing_tx_ll_control.v reg_sram_msb.v
12802aurora_framing_tx_ll_datapath.v rgmii_io.v
12803aurora_framing_tx_ll.v selftest_result.v
12804aurora_framing.v serial_test.v
12805aurora_module.v serial_tst_regs.v
12806clk_test_reg.v small_async_fifo.v
12807cpu_dma_queue.v sram_test_fast.v
12808dcmx3y0_2vp50.v sram_test_fixed_pat_fast.v
12809ddr2_dram_access_reg.v sram_test_fixed_pat.v
12810ddr2_test_reg.v sram_test_rand_pat_fast.v
12811ddr2_test.v sram_test_rand_pat.v
12812dump.v sram_test_reg.v
12813lfsr32.v sram_test.v
12814nf2_core.v testbench_inc.v
12815nf2_mac_grp.v unet_defines.v
12816]0;netfpga@node1-1: ~/netfpga/projects/selftest/srcnetfpga@node1-1:~/netfpga/projects/selftest/src$ clear[K[K[K[K[Kcd
12817]0;netfpga@node1-1: ~netfpga@node1-1:~$ ls
12818[0m[01;34mnetfpga[0m [01;34mpkgs[0m
12819[m]0;netfpga@node1-1: ~netfpga@node1-1:~$ cd netfpga/
12820]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ s[Kls
12821bashrc_addon [0m[01;34mbitfiles[0m [01;34mdoc[0m LICENSE [01;34mprojects[0m
12822[01;34mbin[0m CHANGES [01;34mlib[0m Makefile README
12823[m]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ pwd
12824/home/netfpga/netfpga
12825]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ ls
12826bashrc_addon [0m[01;34mbitfiles[0m [01;34mdoc[0m LICENSE [01;34mprojects[0m
12827[01;34mbin[0m CHANGES [01;34mlib[0m Makefile README
12828[m]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ vonfig[K[K[K[K[Kv[Kconfig --help
12829Command 'vconfig' is available in '/sbin/vconfig'
12830The command could not be located because '/sbin' is not included in the PATH environment variable.
12831This is most likely caused by the lack of administrative priviledges associated with your user account.
12832vconfig: command not found
12833]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ vconfig --help[1@s[1@i[1P[1@u[1@d[1@o[1@
12834Expecting argc to be 3-5, inclusive. Was: 2
12835
12836Usage: add [interface-name] [vlan_id]
12837 rem [vlan-name]
12838 set_flag [interface-name] [flag-num] [0 | 1]
12839 set_egress_map [vlan-name] [skb_priority] [vlan_qos]
12840 set_ingress_map [vlan-name] [skb_priority] [vlan_qos]
12841 set_name_type [name-type]
12842
12843* The [interface-name] is the name of the ethernet card that hosts
12844 the VLAN you are talking about.
12845* The vlan_id is the identifier (0-4095) of the VLAN you are operating on.
12846* skb_priority is the priority in the socket buffer (sk_buff).
12847* vlan_qos is the 3 bit priority in the VLAN header
12848* name-type: VLAN_PLUS_VID (vlan0005), VLAN_PLUS_VID_NO_PAD (vlan5),
12849 DEV_PLUS_VID (eth0.0005), DEV_PLUS_VID_NO_PAD (eth0.5)
12850* FLAGS: 1 REORDER_HDR When this is set, the VLAN device will move the
12851 ethernet header around to make it look exactly like a real
12852 ethernet device. This may help programs such as DHCPd which
12853 read the raw ethernet packet and make assumptions about the
12854 location of bytes. If you don't need it, don't turn it on, because
12855 there will be at least a small performance degradation. Default
12856 is OFF.
12857]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ sudo vconfig --help[5P[C[C[C[C[C[C[C[C[C[C[C[C[C[C[5@sudo [C[C[C[C[C[C[C[C[C[C[C[C[C[C[K[K[K[K[K[Kadd exp0 -[K1
12858ERROR: trying to add VLAN #1 to IF -:exp0:- error: Network is down
12859]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ ifconfig
12860Command 'ifconfig' is available in '/sbin/ifconfig'
12861The command could not be located because '/sbin' is not included in the PATH environment variable.
12862This is most likely caused by the lack of administrative priviledges associated with your user account.
12863ifconfig: command not found
12864]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ ifconfigsifconfiguifconfigdifconfigoifconfig ifconfig
12865control Link encap:Ethernet HWaddr 00:15:17:d6:da:4b
12866 inet addr:10.19.1.1 Bcast:10.19.255.255 Mask:255.255.0.0
12867 inet6 addr: fe80::215:17ff:fed6:da4b/64 Scope:Link
12868 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
12869 RX packets:17006 errors:0 dropped:0 overruns:0 frame:0
12870 TX packets:10193 errors:0 dropped:0 overruns:0 carrier:0
12871 collisions:0 txqueuelen:1000
12872 RX bytes:1558581 (1.5 MB) TX bytes:1998990 (1.9 MB)
12873 Memory:febe0000-fec00000
12874
12875lo Link encap:Local Loopback
12876 inet addr:127.0.0.1 Mask:255.0.0.0
12877 inet6 addr: ::1/128 Scope:Host
12878 UP LOOPBACK RUNNING MTU:16436 Metric:1
12879 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
12880 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
12881 collisions:0 txqueuelen:0
12882 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
12883
12884nf2c0 Link encap:Ethernet HWaddr 00:4e:46:32:43:00
12885 inet6 addr: fe80::24e:46ff:fe32:4300/64 Scope:Link
12886 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
12887 RX packets:11683 errors:0 dropped:0 overruns:0 frame:0
12888 TX packets:11683 errors:0 dropped:0 overruns:0 carrier:0
12889 collisions:0 txqueuelen:1000
12890 RX bytes:17683778 (17.6 MB) TX bytes:17683778 (17.6 MB)
12891 Interrupt:16
12892
12893nf2c1 Link encap:Ethernet HWaddr 00:4e:46:32:43:01
12894 inet6 addr: fe80::24e:46ff:fe32:4301/64 Scope:Link
12895 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
12896 RX packets:11683 errors:0 dropped:0 overruns:0 frame:0
12897 TX packets:11683 errors:0 dropped:0 overruns:0 carrier:0
12898 collisions:0 txqueuelen:1000
12899 RX bytes:17683778 (17.6 MB) TX bytes:17683778 (17.6 MB)
12900 Interrupt:16
12901
12902nf2c2 Link encap:Ethernet HWaddr 00:4e:46:32:43:02
12903 inet6 addr: fe80::24e:46ff:fe32:4302/64 Scope:Link
12904 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
12905 RX packets:11683 errors:0 dropped:0 overruns:0 frame:0
12906 TX packets:11683 errors:0 dropped:0 overruns:0 carrier:0
12907 collisions:0 txqueuelen:1000
12908 RX bytes:17683778 (17.6 MB) TX bytes:17683778 (17.6 MB)
12909 Interrupt:16
12910
12911nf2c3 Link encap:Ethernet HWaddr 00:4e:46:32:43:03
12912 inet6 addr: fe80::24e:46ff:fe32:4303/64 Scope:Link
12913 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
12914 RX packets:11683 errors:0 dropped:0 overruns:0 frame:0
12915 TX packets:11683 errors:0 dropped:0 overruns:0 carrier:0
12916 collisions:0 txqueuelen:1000
12917 RX bytes:17683778 (17.6 MB) TX bytes:17683778 (17.6 MB)
12918 Interrupt:16
12919
12920]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ sudo ifup exp0
12921Ignoring unknown interface exp0=exp0.
12922]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ sudo ifup exp0[1Pconfig
12923control Link encap:Ethernet HWaddr 00:15:17:d6:da:4b
12924 inet addr:10.19.1.1 Bcast:10.19.255.255 Mask:255.255.0.0
12925 inet6 addr: fe80::215:17ff:fed6:da4b/64 Scope:Link
12926 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
12927 RX packets:17048 errors:0 dropped:0 overruns:0 frame:0
12928 TX packets:10217 errors:0 dropped:0 overruns:0 carrier:0
12929 collisions:0 txqueuelen:1000
12930 RX bytes:1562425 (1.5 MB) TX bytes:2004444 (2.0 MB)
12931 Memory:febe0000-fec00000
12932
12933lo Link encap:Local Loopback
12934 inet addr:127.0.0.1 Mask:255.0.0.0
12935 inet6 addr: ::1/128 Scope:Host
12936 UP LOOPBACK RUNNING MTU:16436 Metric:1
12937 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
12938 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
12939 collisions:0 txqueuelen:0
12940 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
12941
12942nf2c0 Link encap:Ethernet HWaddr 00:4e:46:32:43:00
12943 inet6 addr: fe80::24e:46ff:fe32:4300/64 Scope:Link
12944 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
12945 RX packets:11683 errors:0 dropped:0 overruns:0 frame:0
12946 TX packets:11683 errors:0 dropped:0 overruns:0 carrier:0
12947 collisions:0 txqueuelen:1000
12948 RX bytes:17683778 (17.6 MB) TX bytes:17683778 (17.6 MB)
12949 Interrupt:16
12950
12951nf2c1 Link encap:Ethernet HWaddr 00:4e:46:32:43:01
12952 inet6 addr: fe80::24e:46ff:fe32:4301/64 Scope:Link
12953 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
12954 RX packets:11683 errors:0 dropped:0 overruns:0 frame:0
12955 TX packets:11683 errors:0 dropped:0 overruns:0 carrier:0
12956 collisions:0 txqueuelen:1000
12957 RX bytes:17683778 (17.6 MB) TX bytes:17683778 (17.6 MB)
12958 Interrupt:16
12959
12960nf2c2 Link encap:Ethernet HWaddr 00:4e:46:32:43:02
12961 inet6 addr: fe80::24e:46ff:fe32:4302/64 Scope:Link
12962 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
12963 RX packets:11683 errors:0 dropped:0 overruns:0 frame:0
12964 TX packets:11683 errors:0 dropped:0 overruns:0 carrier:0
12965 collisions:0 txqueuelen:1000
12966 RX bytes:17683778 (17.6 MB) TX bytes:17683778 (17.6 MB)
12967 Interrupt:16
12968
12969nf2c3 Link encap:Ethernet HWaddr 00:4e:46:32:43:03
12970 inet6 addr: fe80::24e:46ff:fe32:4303/64 Scope:Link
12971 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
12972 RX packets:11683 errors:0 dropped:0 overruns:0 frame:0
12973 TX packets:11683 errors:0 dropped:0 overruns:0 carrier:0
12974 collisions:0 txqueuelen:1000
12975 RX bytes:17683778 (17.6 MB) TX bytes:17683778 (17.6 MB)
12976 Interrupt:16
12977
12978]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ sudo ifconfigup exp0[1Pconfig[5Pifconfigsudo ifconfig[5Pifconfigsudo vconfig add exp0 1[15Pifconfig[K[K[K[K[K[K[K[Kvi /etc/init[K[K[K[Knetworkinter[K[K[K[K[K/interfaces[1@s[1@u[1@d[1@o[1@
12979[?1049h[?1h=[1;24r[?12;25h[?12l[?25h[27m[m[H[2J[?25l[24;1H"/etc/network/interfaces" 10L, 274C[>c[1;1H[34m# This file describes the network interfaces available on your system
12980# and how to activate them. For more information, see interfaces(5).
12981
12982# The loopback network interface[m
12983auto lo
12984iface lo inet loopback
12985
12986[34m# The primary network interface[m
12987auto control
12988iface control inet dhcp
12989[1m[34m~ [12;1H~ [13;1H~ [14;1H~ [15;1H~ [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# This file describes the network interfaces available on your system
12990# and how to activate them. For more information, see interfaces(5).
12991
12992# The loopback network interface[m
12993auto lo
12994iface lo inet loopback
12995
12996[34m# The primary network interface[m
12997auto control
12998iface control inet dhcp
12999[94m~ [12;1H~ [13;1H~ [14;1H~ [15;1H~ [16;1H~ [17;1H~ [18;1H~ [19;1H~ [20;1H~ [21;1H~ [22;1H~ [23;1H~ [m[24;63H1,1[11CAll
13000"/etc/network/interfaces" 10L, 274C[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,0-1[3;1H[?12l[?25h[?25l[24;63H4,1 [4;1H[?12l[?25h[?25l[24;63H5[5;1H[?12l[?25h[?25l[24;63H6[6;1H[?12l[?25h[?25l[24;63H7,0-1[7;1H[?12l[?25h[?25l[24;63H8,1 [8;1H[?12l[?25h[?25l[24;63H9[9;1H[?12l[?25h[?25l[24;63H10,1[10;1H[?12l[?25h[?25l[24;1H[1m-- INSERT --[m[24;13H[K[24;63H11,1[10CAll[11;1H[K[11;1H[?12l[?25h[?25l[12;1H[K[24;64H2[12;1H[?12l[?25h[?25lauto exp0
13001iface exp0 [13;12H[K[24;64H3,12[13;12H[?12l[?25h[?25l inet static
13002address 192.168.1[14;18H[K[24;64H4,18[14;18H[?12l[?25h[?25l12.5
13003netmask 255.255.[15;17H[K[24;64H5,17[15;17H[?12l[?25h[?25l.0.0
13004hwaddress ether 00:15:17:d6:d[16;30H[K[24;64H6,30[16;30H[?12l[?25h[?25lda:74[17;1H[K[24;64H7,1 [17;1H[?12l[?25h[24;1H[K[17;1H[?25l[24;63H17,0-1[8CAll[17;1H[?12l[?25h[?25l[94m~ [m[24;64H6,1 [16;1H[?12l[?25h[?25l[24;64H5[15;1H[?12l[?25h[?25l[24;64H4[14;1H[?12l[?25h[?25l[24;64H3[13;1H[?12l[?25h[?25l[24;64H2[12;1H[?12l[?25h[?25l[24;64H1,0-1[11;1H[?12l[?25h[?25l[24;64H2,1 [12;1H[?12l[?25h[?25l[24;64H3[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;63H[K[24;1H:[?12l[?25h![?25l[?12l[?25hi[?25l[?12l[?25hf[?25l[?12l[?25hc[?25l[?12l[?25hn[?25l[?12l[?25h[?25l[24;6H[K[24;6H[?12l[?25h[?25l[24;5H[K[24;5H[?12l[?25hc[?25l[?12l[?25ho[?25l[?12l[?25hn[?25l[?12l[?25hf[?25l[?12l[?25hi[?25l[?12l[?25hg[?25l[?12l[?25h[?25l [?12l[?25h-[?25l[?12l[?25ha[?25l[?12l[?25h
13005[?25l[13C[?1l>[?12l[?25h[?1049l
13006[No write since last change]
13007control Link encap:Ethernet HWaddr 00:15:17:d6:da:4b
13008 inet addr:10.19.1.1 Bcast:10.19.255.255 Mask:255.255.0.0
13009 inet6 addr: fe80::215:17ff:fed6:da4b/64 Scope:Link
13010 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
13011 RX packets:17341 errors:0 dropped:0 overruns:0 frame:0
13012 TX packets:10394 errors:0 dropped:0 overruns:0 carrier:0
13013 collisions:0 txqueuelen:1000
13014 RX bytes:1590842 (1.5 MB) TX bytes:2030539 (2.0 MB)
13015 Memory:febe0000-fec00000
13016
13017exp0 Link encap:Ethernet HWaddr 00:15:17:d6:da:4a
13018 BROADCAST MULTICAST MTU:1500 Metric:1
13019 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
13020 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
13021 collisions:0 txqueuelen:1000
13022 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
13023 Memory:feb80000-feba0000
13024
13025lo Link encap:Local Loopback
13026 inet addr:127.0.0.1 Mask:255.0.0.0
13027 inet6 addr: ::1/128 Scope:Host
13028 UP LOOPBACK RUNNING MTU:16436 Metric:1
13029 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
13030 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
13031 collisions:0 txqueuelen:0
13032 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
13033
13034nf2c0 Link encap:Ethernet HWaddr 00:4e:46:32:43:00
13035 inet6 addr: fe80::24e:46ff:fe32:4300/64 Scope:Link
13036 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
13037 RX packets:11683 errors:0 dropped:0 overruns:0 frame:0
13038 TX packets:11683 errors:0 dropped:0 overruns:0 carrier:0
13039 collisions:0 txqueuelen:1000
13040 RX bytes:17683778 (17.6 MB) TX bytes:17683778 (17.6 MB)
13041 Interrupt:16
13042
13043nf2c1 Link encap:Ethernet HWaddr 00:4e:46:32:43:01
13044 inet6 addr: fe80::24e:46ff:fe32:4301/64 Scope:Link
13045 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
13046 RX packets:11683 errors:0 dropped:0 overruns:0 frame:0
13047 TX packets:11683 errors:0 dropped:0 overruns:0 carrier:0
13048 collisions:0 txqueuelen:1000
13049 RX bytes:17683778 (17.6 MB) TX bytes:17683778 (17.6 MB)
13050 Interrupt:16
13051
13052nf2c2 Link encap:Ethernet HWaddr 00:4e:46:32:43:02
13053 inet6 addr: fe80::24e:46ff:fe32:4302/64 Scope:Link
13054 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
13055 RX packets:11683 errors:0 dropped:0 overruns:0 frame:0
13056 TX packets:11683 errors:0 dropped:0 overruns:0 carrier:0
13057 collisions:0 txqueuelen:1000
13058 RX bytes:17683778 (17.6 MB) TX bytes:17683778 (17.6 MB)
13059 Interrupt:16
13060
13061nf2c3 Link encap:Ethernet HWaddr 00:4e:46:32:43:03
13062 inet6 addr: fe80::24e:46ff:fe32:4303/64 Scope:Link
13063 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
13064 RX packets:11683 errors:0 dropped:0 overruns:0 frame:0
13065 TX packets:11683 errors:0 dropped:0 overruns:0 carrier:0
13066 collisions:0 txqueuelen:1000
13067 RX bytes:17683778 (17.6 MB) TX bytes:17683778 (17.6 MB)
13068 Interrupt:16
13069
13070
13071Press ENTER or type command to continue[?1049h[?1h=[27m[m[H[2J[?25l[1;1H[34m# This file describes the network interfaces available on your system
13072# and how to activate them. For more information, see interfaces(5).
13073
13074# The loopback network interface[m
13075auto lo
13076iface lo inet loopback
13077
13078[34m# The primary network interface[m
13079auto control
13080iface control inet dhcp
13081
13082auto exp0
13083iface exp0 inet static
13084address 192.168.12.5
13085netmask 255.255.0.0
13086hwaddress ether 00:15:17:d6:da:74
13087[94m~ [18;1H~ [19;1H~ [20;1H~ [21;1H~ [22;1H~ [23;1H~ [m[24;63H16,1[10CAll[16;1H[?12l[?25h[?25l[24;67H1[16;11H[?12l[?25h[?25l[24;67H7[16;17H[?12l[?25h[?25l[16;17H[K[24;67H6[16;16H[?12l[?25h[?25l[24;1H[1m-- INSERT --[m[24;63H[K[24;63H16,17[9CAll[16;17H[?12l[?25h[?25l 00:15:17:d6:da:4a[24;66H34[16;34H[?12l[?25h[24;1H[K[16;33H[?25l[24;63H16,33[9CAll[16;33H[?12l[?25h[?25l
13088[94m~ [m[24;64H5,1 [15;1H[?12l[?25h[?25l[24;64H4[14;1H[?12l[?25h[?25l[24;64H3[13;1H[?12l[?25h[?25l[24;63H[K[24;1H:[?12l[?25hw[?25l[?12l[?25hq[?25l[?12l[?25h
13089[?25l"/etc/network/interfaces" 15L, 349C written
13090[?1l>[?12l[?25h[?1049l
13091
13092]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ sudo vi /etc/network/interfacesifconfig[Kup exp0
13093]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ sudo ifup exp0vi /etc/network/interfacesifconfig[K
13094control Link encap:Ethernet HWaddr 00:15:17:d6:da:4b
13095 inet addr:10.19.1.1 Bcast:10.19.255.255 Mask:255.255.0.0
13096 inet6 addr: fe80::215:17ff:fed6:da4b/64 Scope:Link
13097 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
13098 RX packets:17403 errors:0 dropped:0 overruns:0 frame:0
13099 TX packets:10437 errors:0 dropped:0 overruns:0 carrier:0
13100 collisions:0 txqueuelen:1000
13101 RX bytes:1596714 (1.5 MB) TX bytes:2039774 (2.0 MB)
13102 Memory:febe0000-fec00000
13103
13104exp0 Link encap:Ethernet HWaddr 00:15:17:d6:da:4a
13105 inet addr:192.168.12.5 Bcast:192.168.255.255 Mask:255.255.0.0
13106 inet6 addr: fe80::215:17ff:fed6:da4a/64 Scope:Link
13107 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
13108 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
13109 TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
13110 collisions:0 txqueuelen:1000
13111 RX bytes:0 (0.0 B) TX bytes:381 (381.0 B)
13112 Memory:feb80000-feba0000
13113
13114lo Link encap:Local Loopback
13115 inet addr:127.0.0.1 Mask:255.0.0.0
13116 inet6 addr: ::1/128 Scope:Host
13117 UP LOOPBACK RUNNING MTU:16436 Metric:1
13118 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
13119 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
13120 collisions:0 txqueuelen:0
13121 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
13122
13123nf2c0 Link encap:Ethernet HWaddr 00:4e:46:32:43:00
13124 inet6 addr: fe80::24e:46ff:fe32:4300/64 Scope:Link
13125 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
13126 RX packets:11683 errors:0 dropped:0 overruns:0 frame:0
13127 TX packets:11683 errors:0 dropped:0 overruns:0 carrier:0
13128 collisions:0 txqueuelen:1000
13129 RX bytes:17683778 (17.6 MB) TX bytes:17683778 (17.6 MB)
13130 Interrupt:16
13131
13132nf2c1 Link encap:Ethernet HWaddr 00:4e:46:32:43:01
13133 inet6 addr: fe80::24e:46ff:fe32:4301/64 Scope:Link
13134 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
13135 RX packets:11683 errors:0 dropped:0 overruns:0 frame:0
13136 TX packets:11683 errors:0 dropped:0 overruns:0 carrier:0
13137 collisions:0 txqueuelen:1000
13138 RX bytes:17683778 (17.6 MB) TX bytes:17683778 (17.6 MB)
13139 Interrupt:16
13140
13141nf2c2 Link encap:Ethernet HWaddr 00:4e:46:32:43:02
13142 inet6 addr: fe80::24e:46ff:fe32:4302/64 Scope:Link
13143 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
13144 RX packets:11683 errors:0 dropped:0 overruns:0 frame:0
13145 TX packets:11683 errors:0 dropped:0 overruns:0 carrier:0
13146 collisions:0 txqueuelen:1000
13147 RX bytes:17683778 (17.6 MB) TX bytes:17683778 (17.6 MB)
13148 Interrupt:16
13149
13150nf2c3 Link encap:Ethernet HWaddr 00:4e:46:32:43:03
13151 inet6 addr: fe80::24e:46ff:fe32:4303/64 Scope:Link
13152 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
13153 RX packets:11683 errors:0 dropped:0 overruns:0 frame:0
13154 TX packets:11683 errors:0 dropped:0 overruns:0 carrier:0
13155 collisions:0 txqueuelen:1000
13156 RX bytes:17683778 (17.6 MB) TX bytes:17683778 (17.6 MB)
13157 Interrupt:16
13158
13159]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ sudo ifconfigup exp0vi /etc/network/interfacesifconfig[Kup exp0[1Pconfig[5Pifconfigsudo vconfig add exp0 1
13160Added VLAN with VID == 1 to IF -:exp0:-
13161WARNING: VLAN 1 does not work with many switches,
13162consider another number if you have problems.
13163]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ sudo vconfig add exp0 1[10Pifconfigup exp0[1Pconfig
13164control Link encap:Ethernet HWaddr 00:15:17:d6:da:4b
13165 inet addr:10.19.1.1 Bcast:10.19.255.255 Mask:255.255.0.0
13166 inet6 addr: fe80::215:17ff:fed6:da4b/64 Scope:Link
13167 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
13168 RX packets:17436 errors:0 dropped:0 overruns:0 frame:0
13169 TX packets:10457 errors:0 dropped:0 overruns:0 carrier:0
13170 collisions:0 txqueuelen:1000
13171 RX bytes:1599724 (1.5 MB) TX bytes:2045528 (2.0 MB)
13172 Memory:febe0000-fec00000
13173
13174exp0 Link encap:Ethernet HWaddr 00:15:17:d6:da:4a
13175 inet addr:192.168.12.5 Bcast:192.168.255.255 Mask:255.255.0.0
13176 inet6 addr: fe80::215:17ff:fed6:da4a/64 Scope:Link
13177 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
13178 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
13179 TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
13180 collisions:0 txqueuelen:1000
13181 RX bytes:0 (0.0 B) TX bytes:2187 (2.1 KB)
13182 Memory:feb80000-feba0000
13183
13184lo Link encap:Local Loopback
13185 inet addr:127.0.0.1 Mask:255.0.0.0
13186 inet6 addr: ::1/128 Scope:Host
13187 UP LOOPBACK RUNNING MTU:16436 Metric:1
13188 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
13189 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
13190 collisions:0 txqueuelen:0
13191 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
13192
13193nf2c0 Link encap:Ethernet HWaddr 00:4e:46:32:43:00
13194 inet6 addr: fe80::24e:46ff:fe32:4300/64 Scope:Link
13195 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
13196 RX packets:11683 errors:0 dropped:0 overruns:0 frame:0
13197 TX packets:11683 errors:0 dropped:0 overruns:0 carrier:0
13198 collisions:0 txqueuelen:1000
13199 RX bytes:17683778 (17.6 MB) TX bytes:17683778 (17.6 MB)
13200 Interrupt:16
13201
13202nf2c1 Link encap:Ethernet HWaddr 00:4e:46:32:43:01
13203 inet6 addr: fe80::24e:46ff:fe32:4301/64 Scope:Link
13204 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
13205 RX packets:11683 errors:0 dropped:0 overruns:0 frame:0
13206 TX packets:11683 errors:0 dropped:0 overruns:0 carrier:0
13207 collisions:0 txqueuelen:1000
13208 RX bytes:17683778 (17.6 MB) TX bytes:17683778 (17.6 MB)
13209 Interrupt:16
13210
13211nf2c2 Link encap:Ethernet HWaddr 00:4e:46:32:43:02
13212 inet6 addr: fe80::24e:46ff:fe32:4302/64 Scope:Link
13213 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
13214 RX packets:11683 errors:0 dropped:0 overruns:0 frame:0
13215 TX packets:11683 errors:0 dropped:0 overruns:0 carrier:0
13216 collisions:0 txqueuelen:1000
13217 RX bytes:17683778 (17.6 MB) TX bytes:17683778 (17.6 MB)
13218 Interrupt:16
13219
13220nf2c3 Link encap:Ethernet HWaddr 00:4e:46:32:43:03
13221 inet6 addr: fe80::24e:46ff:fe32:4303/64 Scope:Link
13222 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
13223 RX packets:11683 errors:0 dropped:0 overruns:0 frame:0
13224 TX packets:11683 errors:0 dropped:0 overruns:0 carrier:0
13225 collisions:0 txqueuelen:1000
13226 RX bytes:17683778 (17.6 MB) TX bytes:17683778 (17.6 MB)
13227 Interrupt:16
13228
13229]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ sudo ifconfigvconfig add exp0 1[K2
13230Added VLAN with VID == 2 to IF -:exp0:-
13231]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ sudo vconfig add exp0 2[K3
13232Added VLAN with VID == 3 to IF -:exp0:-
13233]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ sudo vconfig add exp0 3[K4
13234Added VLAN with VID == 4 to IF -:exp0:-
13235]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ ifconi[Kfig etho0[K[K[K[Kxp0.1 192[1@s[1@u[1@d[1@o[1@ [C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C.168.11.51 netmask 255.255.00
13236[A[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[K
13237
13238[K[A[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C.
132390 up
13240]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ visudo ifconfig exp0.1 192.168.11.51 netmask 255.255.0.0
132410 up[A
13242]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ [C[C[C[C[C[30Pvconfig add exp0 4
13243
13244[K[A[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C32[10Pifconfigvconfig add exp0 1[10Pifconfigup exp0vi /etc/network/interfacesifconfig[Kvi /etc/network/interfaces
13245[?1049h[?1h=[1;24r[?12;25h[?12l[?25h[27m[m[H[2J[?25l[24;1H"/etc/network/interfaces" 15L, 349C[>c[1;1H[34m# This file describes the network interfaces available on your system
13246# and how to activate them. For more information, see interfaces(5).
13247
13248# The loopback network interface[m
13249auto lo
13250iface lo inet loopback
13251
13252[34m# The primary network interface[m
13253auto control
13254iface control inet dhcp
13255
13256auto exp0
13257iface exp0 inet static
13258address 192.168.12.5
13259netmask 255.255.0.0
13260[1m[34m~ [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# This file describes the network interfaces available on your system
13261# and how to activate them. For more information, see interfaces(5).
13262
13263# The loopback network interface[m
13264auto lo
13265iface lo inet loopback
13266
13267[34m# The primary network interface[m
13268auto control
13269iface control inet dhcp
13270
13271auto exp0
13272iface exp0 inet static
13273address 192.168.12.5
13274netmask 255.255.0.0
13275[94m~ [17;1H~ [18;1H~ [19;1H~ [20;1H~ [21;1H~ [22;1H~ [23;1H~ [m[24;63H1,1[11CAll
13276"/etc/network/interfaces" 15L, 349C[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,0-1[3;1H[?12l[?25h[?25l[24;63H4,1 [4;1H[?12l[?25h[?25l[24;63H5[5;1H[?12l[?25h[?25l[24;63H6[6;1H[?12l[?25h[?25l[24;63H7,0-1[7;1H[?12l[?25h[?25l[24;63H8,1 [8;1H[?12l[?25h[?25l[24;63H9[9;1H[?12l[?25h[?25l[24;63H10,1[10;1H[?12l[?25h[?25l[24;64H1,0-1[11;1H[?12l[?25h[?25l[24;64H2,1 [12;1H[?12l[?25h[?25l[24;64H3[13;1H[?12l[?25h[?25l[24;64H4[14;1H[?12l[?25h[?25l[24;66H20[14;20H[?12l[?25h[?25l[24;66H19[14;19H[?12l[?25h[?25l[24;67H8[14;18H[?12l[?25h[?25l11[?12l[?25h[?25l[24;1H[K[24;1H:[?12l[?25hw[?25l[?12l[?25hq[?25l[?12l[?25h
13277[?25l"/etc/network/interfaces" 15L, 349C written
13278
13279
13280[?1l>[?12l[?25h[?1049l]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ sudo f[Kufc[K[K[Kifconfi[K[K[K[K[Kdown x[Kexp0
13281]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ sudo ifdown exp0[1P exp0[1P exp0[1P exp0[1P exp0u exp0p exp0
13282]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ sudo ifconfig
13283control Link encap:Ethernet HWaddr 00:15:17:d6:da:4b
13284 inet addr:10.19.1.1 Bcast:10.19.255.255 Mask:255.255.0.0
13285 inet6 addr: fe80::215:17ff:fed6:da4b/64 Scope:Link
13286 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
13287 RX packets:17887 errors:0 dropped:0 overruns:0 frame:0
13288 TX packets:10720 errors:0 dropped:0 overruns:0 carrier:0
13289 collisions:0 txqueuelen:1000
13290 RX bytes:1642354 (1.6 MB) TX bytes:2081442 (2.0 MB)
13291 Memory:febe0000-fec00000
13292
13293exp0 Link encap:Ethernet HWaddr 00:15:17:d6:da:4a
13294 inet addr:192.168.11.5 Bcast:192.168.255.255 Mask:255.255.0.0
13295 inet6 addr: fe80::215:17ff:fed6:da4a/64 Scope:Link
13296 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
13297 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
13298 TX packets:61 errors:0 dropped:0 overruns:0 carrier:0
13299 collisions:0 txqueuelen:1000
13300 RX bytes:0 (0.0 B) TX bytes:9051 (9.0 KB)
13301 Memory:feb80000-feba0000
13302
13303exp0.1 Link encap:Ethernet HWaddr 00:15:17:d6:da:4a
13304 inet addr:192.168.11.51 Bcast:192.168.255.255 Mask:255.255.0.0
13305 inet6 addr: fe80::215:17ff:fed6:da4a/64 Scope:Link
13306 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
13307 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
13308 TX packets:33 errors:0 dropped:0 overruns:0 carrier:0
13309 collisions:0 txqueuelen:0
13310 RX bytes:0 (0.0 B) TX bytes:5186 (5.1 KB)
13311
13312exp0.2 Link encap:Ethernet HWaddr 00:15:17:d6:da:4a
13313 inet6 addr: fe80::215:17ff:fed6:da4a/64 Scope:Link
13314 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
13315 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
13316 TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
13317 collisions:0 txqueuelen:0
13318 RX bytes:0 (0.0 B) TX bytes:160 (160.0 B)
13319
13320exp0.3 Link encap:Ethernet HWaddr 00:15:17:d6:da:4a
13321 inet6 addr: fe80::215:17ff:fed6:da4a/64 Scope:Link
13322 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
13323 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
13324 TX packets:1 errors:0 dropped:0 overruns:0 carrier:0
13325 collisions:0 txqueuelen:0
13326 RX bytes:0 (0.0 B) TX bytes:90 (90.0 B)
13327
13328exp0.4 Link encap:Ethernet HWaddr 00:15:17:d6:da:4a
13329 inet6 addr: fe80::215:17ff:fed6:da4a/64 Scope:Link
13330 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
13331 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
13332 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
13333 collisions:0 txqueuelen:0
13334 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
13335
13336lo Link encap:Local Loopback
13337 inet addr:127.0.0.1 Mask:255.0.0.0
13338 inet6 addr: ::1/128 Scope:Host
13339 UP LOOPBACK RUNNING MTU:16436 Metric:1
13340 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
13341 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
13342 collisions:0 txqueuelen:0
13343 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
13344
13345nf2c0 Link encap:Ethernet HWaddr 00:4e:46:32:43:00
13346 inet6 addr: fe80::24e:46ff:fe32:4300/64 Scope:Link
13347 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
13348 RX packets:11683 errors:0 dropped:0 overruns:0 frame:0
13349 TX packets:11683 errors:0 dropped:0 overruns:0 carrier:0
13350 collisions:0 txqueuelen:1000
13351 RX bytes:17683778 (17.6 MB) TX bytes:17683778 (17.6 MB)
13352 Interrupt:16
13353
13354nf2c1 Link encap:Ethernet HWaddr 00:4e:46:32:43:01
13355 inet6 addr: fe80::24e:46ff:fe32:4301/64 Scope:Link
13356 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
13357 RX packets:11683 errors:0 dropped:0 overruns:0 frame:0
13358 TX packets:11683 errors:0 dropped:0 overruns:0 carrier:0
13359 collisions:0 txqueuelen:1000
13360 RX bytes:17683778 (17.6 MB) TX bytes:17683778 (17.6 MB)
13361 Interrupt:16
13362
13363nf2c2 Link encap:Ethernet HWaddr 00:4e:46:32:43:02
13364 inet6 addr: fe80::24e:46ff:fe32:4302/64 Scope:Link
13365 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
13366 RX packets:11683 errors:0 dropped:0 overruns:0 frame:0
13367 TX packets:11683 errors:0 dropped:0 overruns:0 carrier:0
13368 collisions:0 txqueuelen:1000
13369 RX bytes:17683778 (17.6 MB) TX bytes:17683778 (17.6 MB)
13370 Interrupt:16
13371
13372nf2c3 Link encap:Ethernet HWaddr 00:4e:46:32:43:03
13373 inet6 addr: fe80::24e:46ff:fe32:4303/64 Scope:Link
13374 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
13375 RX packets:11683 errors:0 dropped:0 overruns:0 frame:0
13376 TX packets:11683 errors:0 dropped:0 overruns:0 carrier:0
13377 collisions:0 txqueuelen:1000
13378 RX bytes:17683778 (17.6 MB) TX bytes:17683778 (17.6 MB)
13379 Interrupt:16
13380
13381]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ sudo ifconfigup exp0[2@down[C[C[C[C[Cvi /etc/network/interfacesifconfig exp0.1 192.168.11.51 netmask 255.255.0.0
133820 up
13383[A[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C netmask 255.255.0.0 [1Pup[A
13384]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ [C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C2 netmask 255.255.0.0 up[A
13385]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ [C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C 192.168.11.52 netmask 255.255.0.0 [1Pup[A
13386]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ [C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C2 192.168.11.52 netmask 255.255.0.0 up[A
13387]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ [C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C
13388
13389
13390]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ sudo ifconfig exp0.2 192.168.11.52 netmask 255.255.0.0
133910 up
13392[A[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C netmask 255.255.0.0 [1Pup[A
13393]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ [C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C3 netmask 255.255.0.0 up[A
13394]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ [C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C 192.168.11.53 netmask 255.255.0.0 [1Pup[A
13395]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ [C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C1 192.168.11.53 netmask 255.255.0.0 up[A
13396]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ [C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C 192.168.11.53 netmask 255.255.0.0 [1Pup[A
13397]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ [C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C3 192.168.11.53 netmask 255.255.0.0 up[A
13398]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ [C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C
13399
13400
13401]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ sudo ifconfig exp0.3 192.168.11.53 netmask 255.255.0.0
134020 up
13403[A[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C netmask 255.255.0.0 [1Pup[A
13404]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ [C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C4 netmask 255.255.0.0 up[A
13405]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ [C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C 192.168.11.54 netmask 255.255.0.0 [1Pup[A
13406]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ [C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C4 192.168.11.54 netmask 255.255.0.0 up[A
13407]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ [C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C
13408
13409
13410]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$
13411]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$
13412]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$
13413]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ exit[K[K[K[Ksudo ifconfig
13414control Link encap:Ethernet HWaddr 00:15:17:d6:da:4b
13415 inet addr:10.19.1.1 Bcast:10.19.255.255 Mask:255.255.0.0
13416 inet6 addr: fe80::215:17ff:fed6:da4b/64 Scope:Link
13417 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
13418 RX packets:18213 errors:0 dropped:0 overruns:0 frame:0
13419 TX packets:10904 errors:0 dropped:0 overruns:0 carrier:0
13420 collisions:0 txqueuelen:1000
13421 RX bytes:1672392 (1.6 MB) TX bytes:2110391 (2.1 MB)
13422 Memory:febe0000-fec00000
13423
13424exp0 Link encap:Ethernet HWaddr 00:15:17:d6:da:4a
13425 inet addr:192.168.11.5 Bcast:192.168.255.255 Mask:255.255.0.0
13426 inet6 addr: fe80::215:17ff:fed6:da4a/64 Scope:Link
13427 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
13428 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
13429 TX packets:110 errors:0 dropped:0 overruns:0 carrier:0
13430 collisions:0 txqueuelen:1000
13431 RX bytes:0 (0.0 B) TX bytes:18862 (18.8 KB)
13432 Memory:feb80000-feba0000
13433
13434exp0.1 Link encap:Ethernet HWaddr 00:15:17:d6:da:4a
13435 inet addr:192.168.11.51 Bcast:192.168.255.255 Mask:255.255.0.0
13436 inet6 addr: fe80::215:17ff:fed6:da4a/64 Scope:Link
13437 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
13438 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
13439 TX packets:37 errors:0 dropped:0 overruns:0 carrier:0
13440 collisions:0 txqueuelen:0
13441 RX bytes:0 (0.0 B) TX bytes:5597 (5.5 KB)
13442
13443exp0.2 Link encap:Ethernet HWaddr 00:15:17:d6:da:4a
13444 inet addr:192.168.11.52 Bcast:192.168.255.255 Mask:255.255.0.0
13445 inet6 addr: fe80::215:17ff:fed6:da4a/64 Scope:Link
13446 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
13447 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
13448 TX packets:15 errors:0 dropped:0 overruns:0 carrier:0
13449 collisions:0 txqueuelen:0
13450 RX bytes:0 (0.0 B) TX bytes:3148 (3.1 KB)
13451
13452exp0.3 Link encap:Ethernet HWaddr 00:15:17:d6:da:4a
13453 inet addr:192.168.11.53 Bcast:192.168.255.255 Mask:255.255.0.0
13454 inet6 addr: fe80::215:17ff:fed6:da4a/64 Scope:Link
13455 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
13456 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
13457 TX packets:15 errors:0 dropped:0 overruns:0 carrier:0
13458 collisions:0 txqueuelen:0
13459 RX bytes:0 (0.0 B) TX bytes:3063 (3.0 KB)
13460
13461exp0.4 Link encap:Ethernet HWaddr 00:15:17:d6:da:4a
13462 inet addr:192.168.11.54 Bcast:192.168.255.255 Mask:255.255.0.0
13463 inet6 addr: fe80::215:17ff:fed6:da4a/64 Scope:Link
13464 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
13465 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
13466 TX packets:13 errors:0 dropped:0 overruns:0 carrier:0
13467 collisions:0 txqueuelen:0
13468 RX bytes:0 (0.0 B) TX bytes:2883 (2.8 KB)
13469
13470lo Link encap:Local Loopback
13471 inet addr:127.0.0.1 Mask:255.0.0.0
13472 inet6 addr: ::1/128 Scope:Host
13473 UP LOOPBACK RUNNING MTU:16436 Metric:1
13474 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
13475 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
13476 collisions:0 txqueuelen:0
13477 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
13478
13479nf2c0 Link encap:Ethernet HWaddr 00:4e:46:32:43:00
13480 inet6 addr: fe80::24e:46ff:fe32:4300/64 Scope:Link
13481 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
13482 RX packets:11683 errors:0 dropped:0 overruns:0 frame:0
13483 TX packets:11683 errors:0 dropped:0 overruns:0 carrier:0
13484 collisions:0 txqueuelen:1000
13485 RX bytes:17683778 (17.6 MB) TX bytes:17683778 (17.6 MB)
13486 Interrupt:16
13487
13488nf2c1 Link encap:Ethernet HWaddr 00:4e:46:32:43:01
13489 inet6 addr: fe80::24e:46ff:fe32:4301/64 Scope:Link
13490 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
13491 RX packets:11683 errors:0 dropped:0 overruns:0 frame:0
13492 TX packets:11683 errors:0 dropped:0 overruns:0 carrier:0
13493 collisions:0 txqueuelen:1000
13494 RX bytes:17683778 (17.6 MB) TX bytes:17683778 (17.6 MB)
13495 Interrupt:16
13496
13497nf2c2 Link encap:Ethernet HWaddr 00:4e:46:32:43:02
13498 inet6 addr: fe80::24e:46ff:fe32:4302/64 Scope:Link
13499 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
13500 RX packets:11683 errors:0 dropped:0 overruns:0 frame:0
13501 TX packets:11683 errors:0 dropped:0 overruns:0 carrier:0
13502 collisions:0 txqueuelen:1000
13503 RX bytes:17683778 (17.6 MB) TX bytes:17683778 (17.6 MB)
13504 Interrupt:16
13505
13506nf2c3 Link encap:Ethernet HWaddr 00:4e:46:32:43:03
13507 inet6 addr: fe80::24e:46ff:fe32:4303/64 Scope:Link
13508 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
13509 RX packets:11683 errors:0 dropped:0 overruns:0 frame:0
13510 TX packets:11683 errors:0 dropped:0 overruns:0 carrier:0
13511 collisions:0 txqueuelen:1000
13512 RX bytes:17683778 (17.6 MB) TX bytes:17683778 (17.6 MB)
13513 Interrupt:16
13514
13515]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$
13516[K]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$
13517[K]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ ls
13518bashrc_addon [0m[01;34mbitfiles[0m [01;34mdoc[0m LICENSE [01;34mprojects[0m
13519[01;34mbin[0m CHANGES [01;34mlib[0m Makefile README
13520[m]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ lssudo ifconfig exp0.4 192.168.11.54 netmask 255.255.0.0
135210 up[A
13522]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ [C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C3 192.168.11.53
13523
13524[C[C[C[C[A
13525]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ [C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C2 192.168.11.52
13526
13527[C[C[C[C[A
13528]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ [C[C[C[C[C[C[C[C[C[C[C[C[C[K
13529
13530[K[A[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[Cup exp0[2@down[C[C[C[C[Cvi /etc/network/interfacesifconfig exp0.1 192.168.11.51 netmask 255.255.0.0
135310 up[A
13532]0;netfpga@node1-1: ~/netfpganetfpga@node1-1:~/netfpga$ [C[C[C[C[C[30Pvconfig add exp0 4
13533
13534[K[A[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C32[10Pifconfigvconfig add exp0 1[10Pifconfigup exp0vi /etc/network/interfacesifconfig[Kup exp0[1Pconfig[5Pifconfigsudo vconfig add exp0 1[4P--help[5P[C[C[C[C[C[C[C[C[C[C[C[C[C[Cls[Kpwd[1Plscd netfpga/ls[Kcdlspwdclearlocate vconfig[1Psudo updatedbapt-get install vlanconfig[4Papt-cache search[C[C[C[C[C[C[C[C[12Plsmod | moresudo modprobe 8021q[4Pman iconvconfig[1Plocate vconfigman 5 interfacesvi /etc/network/interfaces[14Pman ifconfig[3Psudo su -[4Pclear[2Ppwdless phy_test_pktcmp.v gen[C[C[Cs[Kess phy_test_pktgen.v s[Kcd src/ls[Kcd ../[3P../[K[K[Kexit
13535logout
13536Connection to node1-1 closed.
13537
13538nkiran@console:~$