Commit | Line | Data |
---|---|---|
86530b38 AT |
1 | /* |
2 | * ========== Copyright Header Begin ========================================== | |
3 | * | |
4 | * OpenSPARC T2 Processor File: FcNiuBasicTxRx_MULTI_FFFF_DMA_FF_DMA.s | |
5 | * Copyright (C) 1995-2007 Sun Microsystems, Inc. All Rights Reserved | |
6 | * 4150 Network Circle, Santa Clara, California 95054, U.S.A. | |
7 | * | |
8 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | |
9 | * | |
10 | * This program is free software; you can redistribute it and/or modify | |
11 | * it under the terms of the GNU General Public License as published by | |
12 | * the Free Software Foundation; version 2 of the License. | |
13 | * | |
14 | * This program is distributed in the hope that it will be useful, | |
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
17 | * GNU General Public License for more details. | |
18 | * | |
19 | * You should have received a copy of the GNU General Public License | |
20 | * along with this program; if not, write to the Free Software | |
21 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
22 | * | |
23 | * For the avoidance of doubt, and except that if any non-GPL license | |
24 | * choice is available it will apply instead, Sun elects to use only | |
25 | * the General Public License version 2 (GPLv2) at this time for any | |
26 | * software where a choice of GPL license versions is made | |
27 | * available with the language indicating that GPLv2 or any later version | |
28 | * may be used, or where a choice of which version of the GPL is applied is | |
29 | * otherwise unspecified. | |
30 | * | |
31 | * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, | |
32 | * CA 95054 USA or visit www.sun.com if you need additional information or | |
33 | * have any questions. | |
34 | * | |
35 | * | |
36 | * ========== Copyright Header End ============================================ | |
37 | */ | |
38 | #define MAIN_PAGE_HV_ALSO | |
39 | ||
40 | #include "hboot.s" | |
41 | #include "niu_defines.h" | |
42 | #define TX_FAIR_PKT_CNT (NIU_TX_PKT_CNT / 2) | |
43 | #define FAIR_PKT_COUNT ((RXMAC_PKTCNT) - (RXMAC_PKTCNT%8)) | |
44 | ||
45 | /************************************************************************ | |
46 | Test case code start | |
47 | ************************************************************************/ | |
48 | .text | |
49 | .global main | |
50 | ||
51 | main: | |
52 | ta T_CHANGE_HPRIV | |
53 | nop | |
54 | ||
55 | mov 0x1, %g4 | |
56 | ||
57 | ta T_RD_THID | |
58 | nop | |
59 | cmp %g4, %o1 ! Check if its thread1 | |
60 | be thread_1 ! | |
61 | nop | |
62 | brz %o1, thread_Tx ! Execute thread_0 | |
63 | nop | |
64 | cmp %g4, %o1 ! Send the remaining threads to good-end, if any. | |
65 | bne RX_test_passed ! | |
66 | nop | |
67 | ||
68 | ! | |
69 | ! Thread 0 Start | |
70 | ! | |
71 | ! | |
72 | thread_Tx: | |
73 | !#include "niu_init.h" | |
74 | !thread_0: | |
75 | nop | |
76 | wr %g0, ASI_CMP_CORE, %asi | |
77 | mov 0x2, %g4 | |
78 | stxa %g4, [ASI_CMP_CORE_RUNNING_W1S]%asi ! Start Thread_1 | |
79 | nop | |
80 | ||
81 | Init_flow: | |
82 | nop ! $EV trig_pc_d(1, @VA(.MAIN.Init_flow)) -> pktGenConfig(MAC_ID, FRAME_TYPE, FRAME_CLASS, NIU_TX_PKT_LEN_P0, NIU_TX_MULTI_PORT, NIU_TX_PKT_LEN_P1) | |
83 | ||
84 | P_TxDMAActivate: | |
85 | setx MAC_ID, %g1, %o0 ! 1st Parameter | |
86 | setx SetTxDMAActive_list, %g1, %o1 ! 2st parameter | |
87 | setx NIU_TX_MULTI_PORT, %g1, %o2 | |
88 | setx NIU_TX_MULTI_DMA_P0, %g1, %o3 | |
89 | setx NIU_TX_MULTI_DMA_P1, %g1, %o4 | |
90 | call SetTxDMAActive | |
91 | nop ! $EV trig_pc_d(1, @VA(.MAIN.P_TxDMAActivate)) -> NIU_TxDMAActivate (MAC_ID, TxDmaActive_list, NIU_TX_MULTI_PORT, NIU_TX_MULTI_DMA_P0, NIU_TX_MULTI_DMA_P1) | |
92 | ||
93 | P_AddTxChannels : | |
94 | nop ! $EV trig_pc_d(1, @VA(.MAIN.P_AddTxChannels)) -> NIU_AddTxChannels(MAC_ID, NIU_TxDmaNoUE, NIU_TX_MULTI_PORT, NIU_TX_MULTI_DMA_P0, NIU_TX_MULTI_DMA_P1) | |
95 | ldxa [%g2]ASI_PRIMARY_LITTLE, %g5 ! Just for delay | |
96 | nop | |
97 | ||
98 | P_SetTxMaxBurst : | |
99 | setx NIU_TxDmaNo, %g1, %o0 ! 1st parameter : | |
100 | setx SetTxMaxBurst_Data, %g1, %o1 ! 2nd parameter | |
101 | setx NIU_TX_MULTI_PORT, %g1, %o2 | |
102 | setx NIU_TX_MULTI_DMA_P0, %g1, %o3 | |
103 | setx NIU_TX_MULTI_DMA_P1, %g1, %o4 | |
104 | call SetTxMaxBurst | |
105 | nop ! $EV trig_pc_d(1, @VA(.MAIN.P_SetTxMaxBurst)) -> NIU_SetTxMaxBurst (MAC_ID, NIU_TxDmaNoUE, TxMaxBurst_Data, NIU_TX_MULTI_PORT, NIU_TX_MULTI_DMA_P0, NIU_TX_MULTI_DMA_P1) | |
106 | ldxa [%g2]ASI_PRIMARY_LITTLE, %g5 ! Just for delay | |
107 | nop | |
108 | ||
109 | nop | |
110 | setx NIU_TX_MULTI_PORT, %g1, %o2 | |
111 | setx NIU_TX_MULTI_DMA_P0, %g1, %o3 | |
112 | setx NIU_TX_MULTI_DMA_P1, %g1, %o4 | |
113 | call InitTxDma | |
114 | nop | |
115 | ldxa [%g2]ASI_PRIMARY_LITTLE, %g5 ! Just for delay | |
116 | nop | |
117 | ||
118 | Gen_Packet: | |
119 | nop ! $EV trig_pc_d(1, @VA(.MAIN.Gen_Packet)) -> TxPktGen(MAC_ID, NIU_TxDmaNoUE,NIU_TX_PKT_CNT, NIU_TX_MULTI_PORT, NIU_TX_MULTI_DMA_P0, NIU_TX_MULTI_DMA_P1) | |
120 | nop | |
121 | ||
122 | setx 0x50, %g1, %g4 | |
123 | delay_loop_tmp: | |
124 | ldxa [%g2]ASI_PRIMARY_LITTLE, %g5 | |
125 | nop | |
126 | nop | |
127 | nop | |
128 | nop | |
129 | dec %g4 | |
130 | brnz %g4, delay_loop_tmp | |
131 | nop | |
132 | ||
133 | SetTxRingKick_0: | |
134 | setx NIU_PKTGEN_CSR_EV2A_TX_RNG_KICK, %g1, %g2 ! $EV trig_pc_d(1, @VA(.MAIN.SetTxRingKick_0)) -> NIU_SetTxRingKick(0, 0, NIU_TX_MULTI_PORT, NIU_TX_MULTI_DMA_P0, NIU_TX_MULTI_DMA_P1) | |
135 | setx 0x0, %g1, %o0 | |
136 | ldx [%g2] , %g3 | |
137 | nop | |
138 | mulx %o0, 0x200, %g5 | |
139 | setx TX_RING_KICK_Addr, %g1, %g2 | |
140 | add %g2, %g5, %g2 | |
141 | setx 0x40, %g1, %g3 | |
142 | stxa %g3, [%g2]ASI_PRIMARY_LITTLE | |
143 | nop | |
144 | ||
145 | SetTxCs_0 : | |
146 | setx 0x0, %g1, %o0 | |
147 | setx TX_CS_Data, %g1, %g3 | |
148 | mulx %o0, 0x200, %g5 | |
149 | setx TX_CS_Addr, %g1, %g2 | |
150 | add %g2, %g5, %g2 | |
151 | stxa %g3, [%g2]ASI_PRIMARY_LITTLE | |
152 | nop | |
153 | ||
154 | SetTxRingKick_1: | |
155 | setx NIU_PKTGEN_CSR_EV2A_TX_RNG_KICK, %g1, %g2 ! $EV trig_pc_d(1, @VA(.MAIN.SetTxRingKick_1)) -> NIU_SetTxRingKick(0, 1, NIU_TX_MULTI_PORT, NIU_TX_MULTI_DMA_P0, NIU_TX_MULTI_DMA_P1) | |
156 | setx 0x1, %g1, %o0 | |
157 | ldx [%g2] , %g3 | |
158 | nop | |
159 | mulx %o0, 0x200, %g5 | |
160 | setx TX_RING_KICK_Addr, %g1, %g2 | |
161 | add %g2, %g5, %g2 | |
162 | setx 0x40, %g1, %g3 | |
163 | stxa %g3, [%g2]ASI_PRIMARY_LITTLE | |
164 | nop | |
165 | ||
166 | SetTxCs_1 : | |
167 | setx 0x1, %g1, %o0 | |
168 | setx TX_CS_Data, %g1, %g3 | |
169 | mulx %o0, 0x200, %g5 | |
170 | setx TX_CS_Addr, %g1, %g2 | |
171 | add %g2, %g5, %g2 | |
172 | stxa %g3, [%g2]ASI_PRIMARY_LITTLE | |
173 | nop | |
174 | ||
175 | SetTxRingKick_2: | |
176 | setx NIU_PKTGEN_CSR_EV2A_TX_RNG_KICK, %g1, %g2 ! $EV trig_pc_d(1, @VA(.MAIN.SetTxRingKick_2)) -> NIU_SetTxRingKick(0, 2, NIU_TX_MULTI_PORT, NIU_TX_MULTI_DMA_P0, NIU_TX_MULTI_DMA_P1) | |
177 | setx 0x2, %g1, %o0 | |
178 | ldx [%g2] , %g3 | |
179 | nop | |
180 | mulx %o0, 0x200, %g5 | |
181 | setx TX_RING_KICK_Addr, %g1, %g2 | |
182 | add %g2, %g5, %g2 | |
183 | setx 0x40, %g1, %g3 | |
184 | stxa %g3, [%g2]ASI_PRIMARY_LITTLE | |
185 | nop | |
186 | ||
187 | SetTxCs_2 : | |
188 | setx 0x2, %g1, %o0 | |
189 | setx TX_CS_Data, %g1, %g3 | |
190 | mulx %o0, 0x200, %g5 | |
191 | setx TX_CS_Addr, %g1, %g2 | |
192 | add %g2, %g5, %g2 | |
193 | stxa %g3, [%g2]ASI_PRIMARY_LITTLE | |
194 | nop | |
195 | ||
196 | SetTxRingKick_3: | |
197 | setx NIU_PKTGEN_CSR_EV2A_TX_RNG_KICK, %g1, %g2 ! $EV trig_pc_d(1, @VA(.MAIN.SetTxRingKick_3)) -> NIU_SetTxRingKick(0, 3, NIU_TX_MULTI_PORT, NIU_TX_MULTI_DMA_P0, NIU_TX_MULTI_DMA_P1) | |
198 | setx 0x3, %g1, %o0 | |
199 | ldx [%g2] , %g3 | |
200 | nop | |
201 | mulx %o0, 0x200, %g5 | |
202 | setx TX_RING_KICK_Addr, %g1, %g2 | |
203 | add %g2, %g5, %g2 | |
204 | setx 0x40, %g1, %g3 | |
205 | stxa %g3, [%g2]ASI_PRIMARY_LITTLE | |
206 | nop | |
207 | ||
208 | SetTxCs_3 : | |
209 | setx 0x3, %g1, %o0 | |
210 | setx TX_CS_Data, %g1, %g3 | |
211 | mulx %o0, 0x200, %g5 | |
212 | setx TX_CS_Addr, %g1, %g2 | |
213 | add %g2, %g5, %g2 | |
214 | stxa %g3, [%g2]ASI_PRIMARY_LITTLE | |
215 | nop | |
216 | ||
217 | SetTxRingKick_4: | |
218 | setx NIU_PKTGEN_CSR_EV2A_TX_RNG_KICK, %g1, %g2 ! $EV trig_pc_d(1, @VA(.MAIN.SetTxRingKick_4)) -> NIU_SetTxRingKick(0, 4, NIU_TX_MULTI_PORT, NIU_TX_MULTI_DMA_P0, NIU_TX_MULTI_DMA_P1) | |
219 | setx 0x4, %g1, %o0 | |
220 | ldx [%g2] , %g3 | |
221 | nop | |
222 | mulx %o0, 0x200, %g5 | |
223 | setx TX_RING_KICK_Addr, %g1, %g2 | |
224 | add %g2, %g5, %g2 | |
225 | setx 0x40, %g1, %g3 | |
226 | stxa %g3, [%g2]ASI_PRIMARY_LITTLE | |
227 | nop | |
228 | ||
229 | SetTxCs_4 : | |
230 | setx 0x4, %g1, %o0 | |
231 | setx TX_CS_Data, %g1, %g3 | |
232 | mulx %o0, 0x200, %g5 | |
233 | setx TX_CS_Addr, %g1, %g2 | |
234 | add %g2, %g5, %g2 | |
235 | stxa %g3, [%g2]ASI_PRIMARY_LITTLE | |
236 | nop | |
237 | ||
238 | SetTxRingKick_5: | |
239 | setx NIU_PKTGEN_CSR_EV2A_TX_RNG_KICK, %g1, %g2 ! $EV trig_pc_d(1, @VA(.MAIN.SetTxRingKick_5)) -> NIU_SetTxRingKick(0, 5, NIU_TX_MULTI_PORT, NIU_TX_MULTI_DMA_P0, NIU_TX_MULTI_DMA_P1) | |
240 | setx 0x5, %g1, %o0 | |
241 | ldx [%g2] , %g3 | |
242 | nop | |
243 | mulx %o0, 0x200, %g5 | |
244 | setx TX_RING_KICK_Addr, %g1, %g2 | |
245 | add %g2, %g5, %g2 | |
246 | setx 0x40, %g1, %g3 | |
247 | stxa %g3, [%g2]ASI_PRIMARY_LITTLE | |
248 | nop | |
249 | ||
250 | SetTxCs_5 : | |
251 | setx 0x5, %g1, %o0 | |
252 | setx TX_CS_Data, %g1, %g3 | |
253 | mulx %o0, 0x200, %g5 | |
254 | setx TX_CS_Addr, %g1, %g2 | |
255 | add %g2, %g5, %g2 | |
256 | stxa %g3, [%g2]ASI_PRIMARY_LITTLE | |
257 | nop | |
258 | ||
259 | SetTxRingKick_6: | |
260 | setx NIU_PKTGEN_CSR_EV2A_TX_RNG_KICK, %g1, %g2 ! $EV trig_pc_d(1, @VA(.MAIN.SetTxRingKick_6)) -> NIU_SetTxRingKick(0, 6, NIU_TX_MULTI_PORT, NIU_TX_MULTI_DMA_P0, NIU_TX_MULTI_DMA_P1) | |
261 | setx 0x6, %g1, %o0 | |
262 | ldx [%g2] , %g3 | |
263 | nop | |
264 | mulx %o0, 0x200, %g5 | |
265 | setx TX_RING_KICK_Addr, %g1, %g2 | |
266 | add %g2, %g5, %g2 | |
267 | setx 0x40, %g1, %g3 | |
268 | stxa %g3, [%g2]ASI_PRIMARY_LITTLE | |
269 | nop | |
270 | ||
271 | SetTxCs_6 : | |
272 | setx 0x6, %g1, %o0 | |
273 | setx TX_CS_Data, %g1, %g3 | |
274 | mulx %o0, 0x200, %g5 | |
275 | setx TX_CS_Addr, %g1, %g2 | |
276 | add %g2, %g5, %g2 | |
277 | stxa %g3, [%g2]ASI_PRIMARY_LITTLE | |
278 | nop | |
279 | ||
280 | SetTxRingKick_7: | |
281 | setx NIU_PKTGEN_CSR_EV2A_TX_RNG_KICK, %g1, %g2 ! $EV trig_pc_d(1, @VA(.MAIN.SetTxRingKick_7)) -> NIU_SetTxRingKick(0, 7, NIU_TX_MULTI_PORT, NIU_TX_MULTI_DMA_P0, NIU_TX_MULTI_DMA_P1) | |
282 | setx 0x7, %g1, %o0 | |
283 | ldx [%g2] , %g3 | |
284 | nop | |
285 | mulx %o0, 0x200, %g5 | |
286 | setx TX_RING_KICK_Addr, %g1, %g2 | |
287 | add %g2, %g5, %g2 | |
288 | setx 0x40, %g1, %g3 | |
289 | stxa %g3, [%g2]ASI_PRIMARY_LITTLE | |
290 | nop | |
291 | ||
292 | SetTxCs_7 : | |
293 | setx 0x7, %g1, %o0 | |
294 | setx TX_CS_Data, %g1, %g3 | |
295 | mulx %o0, 0x200, %g5 | |
296 | setx TX_CS_Addr, %g1, %g2 | |
297 | add %g2, %g5, %g2 | |
298 | stxa %g3, [%g2]ASI_PRIMARY_LITTLE | |
299 | nop | |
300 | ||
301 | SetTxRingKick_8: | |
302 | setx NIU_PKTGEN_CSR_EV2A_TX_RNG_KICK, %g1, %g2 ! $EV trig_pc_d(1, @VA(.MAIN.SetTxRingKick_8)) -> NIU_SetTxRingKick(1, 8, NIU_TX_MULTI_PORT, NIU_TX_MULTI_DMA_P0, NIU_TX_MULTI_DMA_P1) | |
303 | setx 0x8, %g1, %o0 | |
304 | ldx [%g2] , %g3 | |
305 | nop | |
306 | mulx %o0, 0x200, %g5 | |
307 | setx TX_RING_KICK_Addr, %g1, %g2 | |
308 | add %g2, %g5, %g2 | |
309 | setx 0x40, %g1, %g3 | |
310 | stxa %g3, [%g2]ASI_PRIMARY_LITTLE | |
311 | nop | |
312 | ||
313 | SetTxCs_8 : | |
314 | setx 0x8, %g1, %o0 | |
315 | setx TX_CS_Data, %g1, %g3 | |
316 | mulx %o0, 0x200, %g5 | |
317 | setx TX_CS_Addr, %g1, %g2 | |
318 | add %g2, %g5, %g2 | |
319 | stxa %g3, [%g2]ASI_PRIMARY_LITTLE | |
320 | nop | |
321 | ||
322 | SetTxRingKick_9: | |
323 | setx NIU_PKTGEN_CSR_EV2A_TX_RNG_KICK, %g1, %g2 ! $EV trig_pc_d(1, @VA(.MAIN.SetTxRingKick_9)) -> NIU_SetTxRingKick(1, 9, NIU_TX_MULTI_PORT, NIU_TX_MULTI_DMA_P0, NIU_TX_MULTI_DMA_P1) | |
324 | setx 0x9, %g1, %o0 | |
325 | ldx [%g2] , %g3 | |
326 | nop | |
327 | mulx %o0, 0x200, %g5 | |
328 | setx TX_RING_KICK_Addr, %g1, %g2 | |
329 | add %g2, %g5, %g2 | |
330 | setx 0x40, %g1, %g3 | |
331 | stxa %g3, [%g2]ASI_PRIMARY_LITTLE | |
332 | nop | |
333 | ||
334 | SetTxCs_9 : | |
335 | setx 0x9, %g1, %o0 | |
336 | setx TX_CS_Data, %g1, %g3 | |
337 | mulx %o0, 0x200, %g5 | |
338 | setx TX_CS_Addr, %g1, %g2 | |
339 | add %g2, %g5, %g2 | |
340 | stxa %g3, [%g2]ASI_PRIMARY_LITTLE | |
341 | nop | |
342 | ||
343 | SetTxRingKick_a: | |
344 | setx NIU_PKTGEN_CSR_EV2A_TX_RNG_KICK, %g1, %g2 ! $EV trig_pc_d(1, @VA(.MAIN.SetTxRingKick_a)) -> NIU_SetTxRingKick(1, a, NIU_TX_MULTI_PORT, NIU_TX_MULTI_DMA_P0, NIU_TX_MULTI_DMA_P1) | |
345 | setx 0xa, %g1, %o0 | |
346 | ldx [%g2] , %g3 | |
347 | nop | |
348 | mulx %o0, 0x200, %g5 | |
349 | setx TX_RING_KICK_Addr, %g1, %g2 | |
350 | add %g2, %g5, %g2 | |
351 | setx 0x40, %g1, %g3 | |
352 | stxa %g3, [%g2]ASI_PRIMARY_LITTLE | |
353 | nop | |
354 | ||
355 | SetTxCs_a : | |
356 | setx 0xa, %g1, %o0 | |
357 | setx TX_CS_Data, %g1, %g3 | |
358 | mulx %o0, 0x200, %g5 | |
359 | setx TX_CS_Addr, %g1, %g2 | |
360 | add %g2, %g5, %g2 | |
361 | stxa %g3, [%g2]ASI_PRIMARY_LITTLE | |
362 | nop | |
363 | ||
364 | SetTxRingKick_b: | |
365 | setx NIU_PKTGEN_CSR_EV2A_TX_RNG_KICK, %g1, %g2 ! $EV trig_pc_d(1, @VA(.MAIN.SetTxRingKick_b)) -> NIU_SetTxRingKick(1, b, NIU_TX_MULTI_PORT, NIU_TX_MULTI_DMA_P0, NIU_TX_MULTI_DMA_P1) | |
366 | setx 0xb, %g1, %o0 | |
367 | ldx [%g2] , %g3 | |
368 | nop | |
369 | mulx %o0, 0x200, %g5 | |
370 | setx TX_RING_KICK_Addr, %g1, %g2 | |
371 | add %g2, %g5, %g2 | |
372 | setx 0x40, %g1, %g3 | |
373 | stxa %g3, [%g2]ASI_PRIMARY_LITTLE | |
374 | nop | |
375 | ||
376 | SetTxCs_b : | |
377 | setx 0xb, %g1, %o0 | |
378 | setx TX_CS_Data, %g1, %g3 | |
379 | mulx %o0, 0x200, %g5 | |
380 | setx TX_CS_Addr, %g1, %g2 | |
381 | add %g2, %g5, %g2 | |
382 | stxa %g3, [%g2]ASI_PRIMARY_LITTLE | |
383 | nop | |
384 | ||
385 | SetTxRingKick_c: | |
386 | setx NIU_PKTGEN_CSR_EV2A_TX_RNG_KICK, %g1, %g2 ! $EV trig_pc_d(1, @VA(.MAIN.SetTxRingKick_c)) -> NIU_SetTxRingKick(1, c, NIU_TX_MULTI_PORT, NIU_TX_MULTI_DMA_P0, NIU_TX_MULTI_DMA_P1) | |
387 | setx 0xc, %g1, %o0 | |
388 | ldx [%g2] , %g3 | |
389 | nop | |
390 | mulx %o0, 0x200, %g5 | |
391 | setx TX_RING_KICK_Addr, %g1, %g2 | |
392 | add %g2, %g5, %g2 | |
393 | setx 0x40, %g1, %g3 | |
394 | stxa %g3, [%g2]ASI_PRIMARY_LITTLE | |
395 | nop | |
396 | ||
397 | SetTxCs_c : | |
398 | setx 0xc, %g1, %o0 | |
399 | setx TX_CS_Data, %g1, %g3 | |
400 | mulx %o0, 0x200, %g5 | |
401 | setx TX_CS_Addr, %g1, %g2 | |
402 | add %g2, %g5, %g2 | |
403 | stxa %g3, [%g2]ASI_PRIMARY_LITTLE | |
404 | nop | |
405 | ||
406 | SetTxRingKick_d: | |
407 | setx NIU_PKTGEN_CSR_EV2A_TX_RNG_KICK, %g1, %g2 ! $EV trig_pc_d(1, @VA(.MAIN.SetTxRingKick_d)) -> NIU_SetTxRingKick(1, d, NIU_TX_MULTI_PORT, NIU_TX_MULTI_DMA_P0, NIU_TX_MULTI_DMA_P1) | |
408 | setx 0xd, %g1, %o0 | |
409 | ldx [%g2] , %g3 | |
410 | nop | |
411 | mulx %o0, 0x200, %g5 | |
412 | setx TX_RING_KICK_Addr, %g1, %g2 | |
413 | add %g2, %g5, %g2 | |
414 | setx 0x40, %g1, %g3 | |
415 | stxa %g3, [%g2]ASI_PRIMARY_LITTLE | |
416 | nop | |
417 | ||
418 | SetTxCs_d : | |
419 | setx 0xd, %g1, %o0 | |
420 | setx TX_CS_Data, %g1, %g3 | |
421 | mulx %o0, 0x200, %g5 | |
422 | setx TX_CS_Addr, %g1, %g2 | |
423 | add %g2, %g5, %g2 | |
424 | stxa %g3, [%g2]ASI_PRIMARY_LITTLE | |
425 | nop | |
426 | ||
427 | SetTxRingKick_e: | |
428 | setx NIU_PKTGEN_CSR_EV2A_TX_RNG_KICK, %g1, %g2 ! $EV trig_pc_d(1, @VA(.MAIN.SetTxRingKick_e)) -> NIU_SetTxRingKick(1, e, NIU_TX_MULTI_PORT, NIU_TX_MULTI_DMA_P0, NIU_TX_MULTI_DMA_P1) | |
429 | setx 0xe, %g1, %o0 | |
430 | ldx [%g2] , %g3 | |
431 | nop | |
432 | mulx %o0, 0x200, %g5 | |
433 | setx TX_RING_KICK_Addr, %g1, %g2 | |
434 | add %g2, %g5, %g2 | |
435 | setx 0x40, %g1, %g3 | |
436 | stxa %g3, [%g2]ASI_PRIMARY_LITTLE | |
437 | nop | |
438 | ||
439 | SetTxCs_e : | |
440 | setx 0xe, %g1, %o0 | |
441 | setx TX_CS_Data, %g1, %g3 | |
442 | mulx %o0, 0x200, %g5 | |
443 | setx TX_CS_Addr, %g1, %g2 | |
444 | add %g2, %g5, %g2 | |
445 | stxa %g3, [%g2]ASI_PRIMARY_LITTLE | |
446 | nop | |
447 | ||
448 | SetTxRingKick_f: | |
449 | setx NIU_PKTGEN_CSR_EV2A_TX_RNG_KICK, %g1, %g2 ! $EV trig_pc_d(1, @VA(.MAIN.SetTxRingKick_f)) -> NIU_SetTxRingKick(1, f, NIU_TX_MULTI_PORT, NIU_TX_MULTI_DMA_P0, NIU_TX_MULTI_DMA_P1) | |
450 | setx 0xf, %g1, %o0 | |
451 | ldx [%g2] , %g3 | |
452 | nop | |
453 | mulx %o0, 0x200, %g5 | |
454 | setx TX_RING_KICK_Addr, %g1, %g2 | |
455 | add %g2, %g5, %g2 | |
456 | setx 0x40, %g1, %g3 | |
457 | stxa %g3, [%g2]ASI_PRIMARY_LITTLE | |
458 | nop | |
459 | ||
460 | SetTxCs_f : | |
461 | setx 0xf, %g1, %o0 | |
462 | setx TX_CS_Data, %g1, %g3 | |
463 | mulx %o0, 0x200, %g5 | |
464 | setx TX_CS_Addr, %g1, %g2 | |
465 | add %g2, %g5, %g2 | |
466 | stxa %g3, [%g2]ASI_PRIMARY_LITTLE | |
467 | nop | |
468 | ||
469 | ||
470 | #ifdef JUMBO_FRAME_EN /* Extra Delay for Jumbo packets to go out */ | |
471 | setx loop_count, %g1, %g4 | |
472 | delay_loop: | |
473 | ldxa [%g2]ASI_PRIMARY_LITTLE, %g5 | |
474 | nop | |
475 | nop | |
476 | nop | |
477 | nop | |
478 | dec %g4 | |
479 | brnz %g4, delay_loop | |
480 | nop | |
481 | #endif | |
482 | ||
483 | NIUTx_Pkt_Cnt_Chk_P0: | |
484 | setx 0x0, %g1, %o0 ! MAC PORT | |
485 | ! setx 0x8, %g1, %o1 ! PKT CNT | |
486 | setx TX_FAIR_PKT_CNT, %g1, %o1 ! PKT CNT | |
487 | call NiuTx_check_pkt_cnt | |
488 | nop | |
489 | ||
490 | setx loop_count, %g1, %g4 | |
491 | delay_loop_end_p0: | |
492 | ldxa [%g2]ASI_PRIMARY_LITTLE, %g5 | |
493 | nop | |
494 | nop | |
495 | nop | |
496 | nop | |
497 | dec %g4 | |
498 | brnz %g4, delay_loop_end_p0 | |
499 | nop | |
500 | ||
501 | NIUTx_Pkt_Cnt_Chk_P1: | |
502 | setx 0x1, %g1, %o0 ! MAC PORT | |
503 | ! setx 0x8, %g1, %o1 ! PKT CNT | |
504 | setx TX_FAIR_PKT_CNT, %g1, %o1 ! PKT CNT | |
505 | call NiuTx_check_pkt_cnt | |
506 | nop | |
507 | ||
508 | setx loop_count, %g1, %g4 | |
509 | delay_loop_end_p1: | |
510 | ldxa [%g2]ASI_PRIMARY_LITTLE, %g5 | |
511 | nop | |
512 | nop | |
513 | nop | |
514 | nop | |
515 | dec %g4 | |
516 | brnz %g4, delay_loop_end_p1 | |
517 | nop | |
518 | ||
519 | TX_test_passed: | |
520 | nop ! $EV trig_pc_d(1, @VA(.MAIN.TX_test_passed)) -> NIU_EXIT_chk(0) | |
521 | nop ! $EV trig_pc_d(1, @VA(.MAIN.TX_test_passed)) -> NIU_EXIT_chk(1) | |
522 | EXIT_GOOD | |
523 | ||
524 | !.global test_failed | |
525 | !test_failed: | |
526 | ! nop | |
527 | ! EXIT_BAD | |
528 | ||
529 | ||
530 | ! | |
531 | ! Thread 1 Start | |
532 | ! | |
533 | ! | |
534 | thread_1: | |
535 | ||
536 | /************************************************************************ | |
537 | NIU RX Template Port 0 ---> DMA(0,2,4,6) | |
538 | Port 1 ---> DMA(1,3,5,7) | |
539 | ************************************************************************/ | |
540 | ||
541 | !@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ | |
542 | ! Init DMA Channel 0 @@@@@@@@@@@@@@@@@@@@@@@@@@@@ | |
543 | !@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ | |
544 | ||
545 | P_NIU_RxInitDma_0: | |
546 | setx TX_CS, %g1, %g2 | |
547 | nop ! $EV trig_pc_d(1, @VA(.MAIN.P_NIU_RxInitDma_0)) -> NIU_InitRxDma(0, RX_DESC_RING_LENGTH, RX_COMPL_RING_LEN, RBR_CONFIG_B_DATA, RX_INITIAL_KICK, 0x0, NIU_RX_MULTI_DMA) | |
548 | setx 0x5, %g1, %g4 | |
549 | delay_loop_Rx_0: | |
550 | ldxa [%g2]ASI_PRIMARY_LITTLE, %g5 | |
551 | nop | |
552 | nop | |
553 | nop | |
554 | nop | |
555 | dec %g4 | |
556 | brnz %g4, delay_loop_Rx_0 | |
557 | nop | |
558 | ||
559 | nop | |
560 | setx 0x0, %g1, %o0 | |
561 | setx 0x0, %g1, %o1 | |
562 | setx RX_DESC_RING_LENGTH, %g1, %o2 | |
563 | setx RX_COMPL_RING_LEN, %g1, %o3 | |
564 | setx RBR_CONFIG_B_DATA, %g1, %o4 | |
565 | setx RX_INITIAL_KICK, %g1, %o5 | |
566 | setx NIU_RX_MULTI_DMA, %g1, %o6 | |
567 | call NiuInitRxDma | |
568 | nop | |
569 | !@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ | |
570 | ! Init DMA Channel 2 @@@@@@@@@@@@@@@@@@@@@@@@@@@@ | |
571 | !@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ | |
572 | ||
573 | P_NIU_RxInitDma_2: | |
574 | setx TX_CS, %g1, %g2 | |
575 | nop ! $EV trig_pc_d(1, @VA(.MAIN.P_NIU_RxInitDma_2)) -> NIU_InitRxDma(2, RX_DESC_RING_LENGTH, RX_COMPL_RING_LEN, RBR_CONFIG_B_DATA, RX_INITIAL_KICK, 0x0, NIU_RX_MULTI_DMA) | |
576 | setx 0x5, %g1, %g4 | |
577 | delay_loop_Rx_2: | |
578 | ldxa [%g2]ASI_PRIMARY_LITTLE, %g5 | |
579 | nop | |
580 | nop | |
581 | nop | |
582 | nop | |
583 | dec %g4 | |
584 | brnz %g4, delay_loop_Rx_2 | |
585 | nop | |
586 | ||
587 | nop | |
588 | setx 0x2, %g1, %o0 | |
589 | setx 0x2, %g1, %l2 | |
590 | setx RX_DESC_RING_LENGTH, %g1, %o2 | |
591 | setx RX_COMPL_RING_LEN, %g1, %o3 | |
592 | setx RBR_CONFIG_B_DATA, %g1, %o4 | |
593 | setx RX_INITIAL_KICK, %g1, %o5 | |
594 | setx 0x0, %g1, %o6 | |
595 | call NiuInitRxDma | |
596 | nop | |
597 | !@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ | |
598 | ! Init DMA Channel 4 @@@@@@@@@@@@@@@@@@@@@@@@@@@@ | |
599 | !@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ | |
600 | ||
601 | P_NIU_RxInitDma_4: | |
602 | setx TX_CS, %g1, %g2 | |
603 | nop ! $EV trig_pc_d(1, @VA(.MAIN.P_NIU_RxInitDma_4)) -> NIU_InitRxDma(4, RX_DESC_RING_LENGTH, RX_COMPL_RING_LEN, RBR_CONFIG_B_DATA, RX_INITIAL_KICK, 0x0, NIU_RX_MULTI_DMA) | |
604 | setx 0x5, %g1, %g4 | |
605 | delay_loop_Rx_4: | |
606 | ldxa [%g2]ASI_PRIMARY_LITTLE, %g5 | |
607 | nop | |
608 | nop | |
609 | nop | |
610 | nop | |
611 | dec %g4 | |
612 | brnz %g4, delay_loop_Rx_4 | |
613 | nop | |
614 | ||
615 | nop | |
616 | setx 0x4, %g1, %o0 | |
617 | setx 0x4, %g1, %l3 | |
618 | setx RX_DESC_RING_LENGTH, %g1, %o2 | |
619 | setx RX_COMPL_RING_LEN, %g1, %o3 | |
620 | setx RBR_CONFIG_B_DATA, %g1, %o4 | |
621 | setx RX_INITIAL_KICK, %g1, %o5 | |
622 | setx 0x0, %g1, %o6 | |
623 | call NiuInitRxDma | |
624 | nop | |
625 | !@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ | |
626 | ! Init DMA Channel 6 @@@@@@@@@@@@@@@@@@@@@@@@@@@@ | |
627 | !@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ | |
628 | ||
629 | P_NIU_RxInitDma_6: | |
630 | setx TX_CS, %g1, %g2 | |
631 | nop ! $EV trig_pc_d(1, @VA(.MAIN.P_NIU_RxInitDma_6)) -> NIU_InitRxDma(6, RX_DESC_RING_LENGTH, RX_COMPL_RING_LEN, RBR_CONFIG_B_DATA, RX_INITIAL_KICK, 0x0, NIU_RX_MULTI_DMA) | |
632 | setx 0x5, %g1, %g4 | |
633 | delay_loop_Rx_6: | |
634 | ldxa [%g2]ASI_PRIMARY_LITTLE, %g5 | |
635 | nop | |
636 | nop | |
637 | nop | |
638 | nop | |
639 | dec %g4 | |
640 | brnz %g4, delay_loop_Rx_6 | |
641 | nop | |
642 | ||
643 | nop | |
644 | setx 0x6, %g1, %o0 | |
645 | setx 0x6, %g1, %l4 | |
646 | setx RX_DESC_RING_LENGTH, %g1, %o2 | |
647 | setx RX_COMPL_RING_LEN, %g1, %o3 | |
648 | setx RBR_CONFIG_B_DATA, %g1, %o4 | |
649 | setx RX_INITIAL_KICK, %g1, %o5 | |
650 | setx 0x0, %g1, %o6 | |
651 | call NiuInitRxDma | |
652 | nop | |
653 | !@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ | |
654 | ! Init DMA Channel 1 @@@@@@@@@@@@@@@@@@@@@@@@@@@@ | |
655 | !@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ | |
656 | ||
657 | P_NIU_RxInitDma_1: | |
658 | nop ! $EV trig_pc_d(1, @VA(.MAIN.P_NIU_RxInitDma_1)) -> NIU_InitRxDma(1, RX_DESC_RING_LENGTH, RX_COMPL_RING_LEN, RBR_CONFIG_B_DATA, RX_INITIAL_KICK, 0x0, NIU_RX_MULTI_DMA) | |
659 | setx 0x5, %g1, %g4 | |
660 | delay_loop_Rx_1: | |
661 | ldxa [%g2]ASI_PRIMARY_LITTLE, %g5 | |
662 | nop | |
663 | nop | |
664 | nop | |
665 | nop | |
666 | dec %g4 | |
667 | brnz %g4, delay_loop_Rx_1 | |
668 | nop | |
669 | ||
670 | nop | |
671 | setx 0x1, %g1, %o0 | |
672 | setx RX_DESC_RING_LENGTH, %g1, %o2 | |
673 | setx RX_COMPL_RING_LEN, %g1, %o3 | |
674 | setx RBR_CONFIG_B_DATA, %g1, %o4 | |
675 | setx RX_INITIAL_KICK, %g1, %o5 | |
676 | setx 0x0, %g1, %o6 | |
677 | call NiuInitRxDma | |
678 | nop | |
679 | !@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ | |
680 | ! Init DMA Channel 3 @@@@@@@@@@@@@@@@@@@@@@@@@@@@ | |
681 | !@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ | |
682 | ||
683 | P_NIU_RxInitDma_3: | |
684 | nop ! $EV trig_pc_d(1, @VA(.MAIN.P_NIU_RxInitDma_3)) -> NIU_InitRxDma(3, RX_DESC_RING_LENGTH, RX_COMPL_RING_LEN, RBR_CONFIG_B_DATA, RX_INITIAL_KICK, 0x0, NIU_RX_MULTI_DMA) | |
685 | setx 0x5, %g1, %g4 | |
686 | delay_loop_Rx_3: | |
687 | ldxa [%g2]ASI_PRIMARY_LITTLE, %g5 | |
688 | nop | |
689 | nop | |
690 | nop | |
691 | nop | |
692 | dec %g4 | |
693 | brnz %g4, delay_loop_Rx_3 | |
694 | nop | |
695 | ||
696 | nop | |
697 | setx 0x3, %g1, %o0 | |
698 | setx RX_DESC_RING_LENGTH, %g1, %o2 | |
699 | setx RX_COMPL_RING_LEN, %g1, %o3 | |
700 | setx RBR_CONFIG_B_DATA, %g1, %o4 | |
701 | setx RX_INITIAL_KICK, %g1, %o5 | |
702 | setx 0x0, %g1, %o6 | |
703 | call NiuInitRxDma | |
704 | nop | |
705 | !@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ | |
706 | ! Init DMA Channel 5 @@@@@@@@@@@@@@@@@@@@@@@@@@@@ | |
707 | !@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ | |
708 | ||
709 | P_NIU_RxInitDma_5: | |
710 | nop ! $EV trig_pc_d(1, @VA(.MAIN.P_NIU_RxInitDma_5)) -> NIU_InitRxDma(5, RX_DESC_RING_LENGTH, RX_COMPL_RING_LEN, RBR_CONFIG_B_DATA, RX_INITIAL_KICK, 0x0, NIU_RX_MULTI_DMA) | |
711 | setx 0x5, %g1, %g4 | |
712 | delay_loop_Rx_5: | |
713 | ldxa [%g2]ASI_PRIMARY_LITTLE, %g5 | |
714 | nop | |
715 | nop | |
716 | nop | |
717 | nop | |
718 | dec %g4 | |
719 | brnz %g4, delay_loop_Rx_5 | |
720 | nop | |
721 | ||
722 | nop | |
723 | setx 0x5, %g1, %o0 | |
724 | setx RX_DESC_RING_LENGTH, %g1, %o2 | |
725 | setx RX_COMPL_RING_LEN, %g1, %o3 | |
726 | setx RBR_CONFIG_B_DATA, %g1, %o4 | |
727 | setx RX_INITIAL_KICK, %g1, %o5 | |
728 | setx 0x0, %g1, %o6 | |
729 | call NiuInitRxDma | |
730 | nop | |
731 | !@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ | |
732 | ! Init DMA Channel 7 @@@@@@@@@@@@@@@@@@@@@@@@@@@@ | |
733 | !@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ | |
734 | ||
735 | P_NIU_RxInitDma_7: | |
736 | nop ! $EV trig_pc_d(1, @VA(.MAIN.P_NIU_RxInitDma_7)) -> NIU_InitRxDma(7, RX_DESC_RING_LENGTH, RX_COMPL_RING_LEN, RBR_CONFIG_B_DATA, RX_INITIAL_KICK, 0x0, NIU_RX_MULTI_DMA) | |
737 | setx 0x5, %g1, %g4 | |
738 | delay_loop_Rx_7: | |
739 | ldxa [%g2]ASI_PRIMARY_LITTLE, %g5 | |
740 | nop | |
741 | nop | |
742 | nop | |
743 | nop | |
744 | dec %g4 | |
745 | brnz %g4, delay_loop_Rx_7 | |
746 | nop | |
747 | ||
748 | nop | |
749 | setx 0x7, %g1, %o0 | |
750 | setx RX_DESC_RING_LENGTH, %g1, %o2 | |
751 | setx RX_COMPL_RING_LEN, %g1, %o3 | |
752 | setx RBR_CONFIG_B_DATA, %g1, %o4 | |
753 | setx RX_INITIAL_KICK, %g1, %o5 | |
754 | setx 0x0, %g1, %o6 | |
755 | call NiuInitRxDma | |
756 | nop | |
757 | P0_NIU_RxPkt_Conf: | |
758 | nop ! $EV trig_pc_d(1, @VA(.MAIN.P0_NIU_RxPkt_Conf)) -> NIU_RxPktConf(RXMAC_PKTCNT,0) | |
759 | ldxa [%g2]ASI_PRIMARY_LITTLE, %g5 | |
760 | nop | |
761 | P1_NIU_RxPkt_Conf: | |
762 | nop ! $EV trig_pc_d(1, @VA(.MAIN.P1_NIU_RxPkt_Conf)) -> NIU_RxPktConf(RXMAC_PKTCNT,1) | |
763 | ldxa [%g2]ASI_PRIMARY_LITTLE, %g5 | |
764 | nop | |
765 | P_NIU_Rx_GenPkt: | |
766 | setx RXMAC_PKTCNT, %g1, %g6 | |
767 | nop | |
768 | Rx_pktcnt_loop: | |
769 | nop ! $EV trig_pc_d(1, @VA(.MAIN.Rx_pktcnt_loop)) -> NIU_RxGenPkt(MAC_ID, 0, RXMAC_PKTCNT, 0x100,0x1, NIU_RX_MULTI_DMA, 1) | |
770 | ldxa [%g2]ASI_PRIMARY_LITTLE, %g5 | |
771 | nop | |
772 | nop | |
773 | nop | |
774 | nop | |
775 | ||
776 | delay_loop0: | |
777 | mov %g0, %g5 | |
778 | ||
779 | setx 0x0, %g7, %g1 | |
780 | mulx %g1, 0x200, %g4 | |
781 | setx RCR_STAT_A, %g7, %g2 | |
782 | add %g2, %g4, %g2 | |
783 | ldxa [%g2]ASI_PRIMARY_LITTLE, %l2 | |
784 | add %l2, %l3, %g5 | |
785 | ||
786 | setx 0x1, %g7, %g1 | |
787 | mulx %g1, 0x200, %g4 | |
788 | setx RCR_STAT_A, %g7, %g2 | |
789 | add %g2, %g4, %g2 | |
790 | ldxa [%g2]ASI_PRIMARY_LITTLE, %l2 | |
791 | add %l2, %g4, %g5 | |
792 | ||
793 | setx 0x2, %g7, %g1 | |
794 | mulx %g1, 0x200, %g4 | |
795 | setx RCR_STAT_A, %g7, %g2 | |
796 | add %g2, %g4, %g2 | |
797 | ldxa [%g2]ASI_PRIMARY_LITTLE, %l2 | |
798 | add %l2, %g4, %g5 | |
799 | ||
800 | setx 0x3, %g7, %g1 | |
801 | mulx %g1, 0x200, %g4 | |
802 | setx RCR_STAT_A, %g7, %g2 | |
803 | add %g2, %g4, %g2 | |
804 | ldxa [%g2]ASI_PRIMARY_LITTLE, %l2 | |
805 | add %l2, %g4, %g5 | |
806 | ||
807 | setx 0x4, %g7, %g1 | |
808 | mulx %g1, 0x200, %g4 | |
809 | setx RCR_STAT_A, %g7, %g2 | |
810 | add %g2, %g4, %g2 | |
811 | ldxa [%g2]ASI_PRIMARY_LITTLE, %l2 | |
812 | add %l2, %g4, %g5 | |
813 | ||
814 | setx 0x5, %g7, %g1 | |
815 | mulx %g1, 0x200, %g4 | |
816 | setx RCR_STAT_A, %g7, %g2 | |
817 | add %g2, %g4, %g2 | |
818 | ldxa [%g2]ASI_PRIMARY_LITTLE, %l2 | |
819 | add %l2, %g4, %g5 | |
820 | ||
821 | setx 0x6, %g7, %g1 | |
822 | mulx %g1, 0x200, %g4 | |
823 | setx RCR_STAT_A, %g7, %g2 | |
824 | add %g2, %g4, %g2 | |
825 | ldxa [%g2]ASI_PRIMARY_LITTLE, %l2 | |
826 | add %l2, %g4, %g5 | |
827 | ||
828 | setx 0x7, %g7, %g1 | |
829 | mulx %g1, 0x200, %g4 | |
830 | setx RCR_STAT_A, %g7, %g2 | |
831 | add %g2, %g4, %g2 | |
832 | ldxa [%g2]ASI_PRIMARY_LITTLE, %l2 | |
833 | add %l2, %g4, %g5 | |
834 | ||
835 | cmp %g5, FAIR_PKT_COUNT | |
836 | bne delay_loop0 | |
837 | nop | |
838 | ||
839 | ||
840 | RX_test_passed: | |
841 | nop | |
842 | EXIT_GOOD | |
843 | ||
844 | ||
845 | /************************************************************************/ | |
846 | ||
847 | SECTION SetRxLogMask1_init data_va=0x200000100 | |
848 | attr_data { | |
849 | Name = SetRxLogMask1_init, | |
850 | hypervisor, | |
851 | compressimage | |
852 | } | |
853 | .data | |
854 | SetRxLogMask1_init: | |
855 | .xword 0x0060452301000484 | |
856 | /************************************************************************/ | |
857 | ||
858 | SECTION SetRxLogVal1_init data_va=0x200000200 | |
859 | attr_data { | |
860 | Name = SetRxLogVal1_init, | |
861 | hypervisor, | |
862 | compressimage | |
863 | } | |
864 | .data | |
865 | SetRxLogVal1_init: | |
866 | .xword 0x0060452301000484 | |
867 | /************************************************************************/ | |
868 | ||
869 | SECTION SetRxLogRelo1_init data_va=0x200000300 | |
870 | attr_data { | |
871 | Name = SetRxLogRelo1_init, | |
872 | hypervisor, | |
873 | compressimage | |
874 | } | |
875 | .data | |
876 | SetRxLogRelo1_init: | |
877 | .xword 0x0060452301000484 | |
878 | /************************************************************************/ | |
879 | ||
880 | SECTION SetRxLogPgVld_init data_va=0x200000400 | |
881 | attr_data { | |
882 | Name = SetRxLogPgVld_init, | |
883 | hypervisor, | |
884 | compressimage | |
885 | } | |
886 | .data | |
887 | SetRxLogPgVld_init: | |
888 | .xword 0x0060452301000484 | |
889 | /************************************************************************/ | |
890 | SECTION SetRbrConfig_A_init data_va=0x200000500 | |
891 | attr_data { | |
892 | Name = SetRbrConfig_A_init, | |
893 | hypervisor, | |
894 | compressimage | |
895 | } | |
896 | .data | |
897 | SetRbrConfig_A_init: | |
898 | .xword 0x0060452301000484 | |
899 | /************************************************************************/ | |
900 | SECTION SetRbrConfig_B_init data_va=0x200000600 | |
901 | attr_data { | |
902 | Name = SetRbrConfig_B_init, | |
903 | hypervisor, | |
904 | compressimage | |
905 | } | |
906 | .data | |
907 | SetRbrConfig_B_init: | |
908 | .xword 0x0060452301000484 | |
909 | /************************************************************************/ | |
910 | SECTION SetRcrConfig_A_init data_va=0x200000700 | |
911 | attr_data { | |
912 | Name = SetRcrConfig_A_init, | |
913 | hypervisor, | |
914 | compressimage | |
915 | } | |
916 | .data | |
917 | SetRcrConfig_A_init: | |
918 | .xword 0x0060452301000484 | |
919 | /************************************************************************/ | |
920 | SECTION SetRxDmaCfig_1_0_init data_va=0x200000800 | |
921 | attr_data { | |
922 | Name = SetRxDmaCfig_1_0_init, | |
923 | hypervisor, | |
924 | compressimage | |
925 | } | |
926 | .data | |
927 | SetRxDmaCfig_1_0_init: | |
928 | .xword 0x0060452301000484 | |
929 | /************************************************************************/ | |
930 | SECTION SetRxdmaCfig2Start_init data_va=0x200000900 | |
931 | attr_data { | |
932 | Name = SetRxdmaCfig2Start_init, | |
933 | hypervisor, | |
934 | compressimage | |
935 | } | |
936 | .data | |
937 | SetRxdmaCfig2Start_init: | |
938 | .xword 0x0060452301000484 | |
939 | /************************************************************************/ | |
940 | SECTION SetRxDmaCfig_1_1_init data_va=0x200000a00 | |
941 | attr_data { | |
942 | Name = SetRxDmaCfig_1_1_init, | |
943 | hypervisor, | |
944 | compressimage | |
945 | } | |
946 | .data | |
947 | SetRxDmaCfig_1_1_init: | |
948 | .xword 0x0060452301000484 | |
949 | ||
950 | /************************************************************************/ | |
951 | ||
952 | SECTION SetRxRingKick_init data_va=0x200000b00 | |
953 | attr_data { | |
954 | Name = SetRxRingKick_init, | |
955 | hypervisor, | |
956 | compressimage | |
957 | } | |
958 | .data | |
959 | SetRxRingKick_init: | |
960 | .xword 0x0060452301000484 | |
961 | /************************************************************************/ | |
962 | ||
963 | SECTION SetRxLogMask2_init data_va=0x200000c00 | |
964 | attr_data { | |
965 | Name = SetRxLogMask2_init, | |
966 | hypervisor, | |
967 | compressimage | |
968 | } | |
969 | .data | |
970 | SetRxLogMask2_init: | |
971 | .xword 0x0060452301000484 | |
972 | /************************************************************************/ | |
973 | ||
974 | SECTION SetRxLogVal2_init data_va=0x200000d00 | |
975 | attr_data { | |
976 | Name = SetRxLogVal2_init, | |
977 | hypervisor, | |
978 | compressimage | |
979 | } | |
980 | .data | |
981 | SetRxLogVal2_init: | |
982 | .xword 0x0060452301000484 | |
983 | /************************************************************************/ | |
984 | ||
985 | SECTION SetRxLogRelo2_init data_va=0x200000e00 | |
986 | attr_data { | |
987 | Name = SetRxLogRelo2_init, | |
988 | hypervisor, | |
989 | compressimage | |
990 | } | |
991 | .data | |
992 | SetRxLogRelo2_init: | |
993 | .xword 0x0060452301000484 | |
994 | ||
995 | /************************************************************************/ | |
996 | ||
997 | /************************************************************************ | |
998 | Test case data start | |
999 | ************************************************************************/ | |
1000 | /* These initialization is temporary, as there looks some bug in mempli */ | |
1001 | ||
1002 | SECTION SetRngConfig_init data_va=0x100000000 | |
1003 | attr_data { | |
1004 | Name = SetRngConfig_init, | |
1005 | hypervisor, | |
1006 | compressimage | |
1007 | } | |
1008 | .data | |
1009 | SetRngConfig_init: | |
1010 | .xword 0x0060452301000484 | |
1011 | /************************************************************************/ | |
1012 | ||
1013 | SECTION SetTxRingKick_init data_va=0x100000100 | |
1014 | attr_data { | |
1015 | Name = SetTxRingKick_init, | |
1016 | hypervisor, | |
1017 | compressimage | |
1018 | } | |
1019 | .data | |
1020 | SetTxRingKick_init: | |
1021 | .xword 0x0060452301000484 | |
1022 | /************************************************************************/ | |
1023 | ||
1024 | SECTION SetTxLPMask1_init data_va=0x100000200 | |
1025 | attr_data { | |
1026 | Name = SetTxLPMask1_init, | |
1027 | hypervisor, | |
1028 | compressimage | |
1029 | } | |
1030 | .data | |
1031 | SetTxLPMask1_init: | |
1032 | .xword 0x0060452301000484 | |
1033 | /************************************************************************/ | |
1034 | ||
1035 | SECTION SetTxLPValue1_init data_va=0x100000300 | |
1036 | attr_data { | |
1037 | Name = SetTxLPValue1_init, | |
1038 | hypervisor, | |
1039 | compressimage | |
1040 | } | |
1041 | .data | |
1042 | SetTxLPValue1_init: | |
1043 | .xword 0x0060452301000484 | |
1044 | /************************************************************************/ | |
1045 | ||
1046 | SECTION SetTxLPRELOC1_init data_va=0x100000400 | |
1047 | attr_data { | |
1048 | Name = SetTxLPRELOC1_init, | |
1049 | hypervisor, | |
1050 | compressimage | |
1051 | } | |
1052 | .data | |
1053 | SetTxLPRELOC1_init: | |
1054 | .xword 0x0060452301000484 | |
1055 | /************************************************************************/ | |
1056 | SECTION SetTxLPMask2_init data_va=0x100000500 | |
1057 | attr_data { | |
1058 | Name = SetTxLPMask2_init, | |
1059 | hypervisor, | |
1060 | compressimage | |
1061 | } | |
1062 | .data | |
1063 | SetTxLPMask2_init: | |
1064 | .xword 0x0060452301000484 | |
1065 | /************************************************************************/ | |
1066 | SECTION SetTxLPValue2_init data_va=0x100000600 | |
1067 | attr_data { | |
1068 | Name = SetTxLPValue2_init, | |
1069 | hypervisor, | |
1070 | compressimage | |
1071 | } | |
1072 | .data | |
1073 | SetTxLPValue2_init: | |
1074 | .xword 0x0060452301000484 | |
1075 | ||
1076 | /************************************************************************/ | |
1077 | SECTION SetTxLPRELOC2_init data_va=0x100000700 | |
1078 | attr_data { | |
1079 | Name = SetTxLPRELOC2_init, | |
1080 | hypervisor, | |
1081 | compressimage | |
1082 | } | |
1083 | .data | |
1084 | SetTxLPRELOC2_init: | |
1085 | .xword 0x0060452301000484 | |
1086 | ||
1087 | /************************************************************************/ | |
1088 | SECTION SetTxLPValid_init data_va=0x100000800 | |
1089 | attr_data { | |
1090 | Name = SetTxLPValid_init, | |
1091 | hypervisor, | |
1092 | compressimage | |
1093 | } | |
1094 | .data | |
1095 | SetTxLPValid_init: | |
1096 | .xword 0x0060452301000484 | |
1097 | ||
1098 | /************************************************************************/ |