comparison L1/include/l1_mftab.h @ 0:75a11d740a02

initial import of gsm-fw from freecalypso-sw rev 1033:5ab737ac3ad7
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 09 Jun 2016 00:02:41 +0000
parents
children f93dab57b032
comparison
equal deleted inserted replaced
-1:000000000000 0:75a11d740a02
1 /************* Revision Controle System Header *************
2 * GSM Layer 1 software
3 * L1_MFTAB.H
4 *
5 * Filename l1_mftab.h
6 * Copyright 2003 (C) Texas Instruments
7 *
8 ************* Revision Controle System Header *************/
9
10 /***********************************************************
11 * Content:
12 * This file contains the MultiFrame tables for all L1S
13 * basic tasks.
14 ***********************************************************/
15
16 /*******************************************************************************************/
17 /* Multiframe Blocks for Dynamic MFTAB Building purpose. */
18 /*******************************************************************************************/
19 // Multiframe table size....
20
21 #ifndef L1_MFTAB_H
22 #define L1_MFTAB_H
23
24 #define BLOC_FBNEW_SIZE 14 + 2 // FB.
25
26 #define BLOC_SB2_SIZE 5 + 2 // SB2.
27 #if ((REL99 == 1) && (FF_BHO == 1))
28 #define BLOC_FBSB_SIZE 12 + 2 + 2 + 2 // FB + SB + AGC
29 #endif
30 #define BLOC_SBCONF_SIZE 4 + 2 // SBCONF.
31 #define BLOC_BCCHN_SIZE 7 + 2 // BCCHN.
32 #define BLOC_BCCHN_TOP_SIZE 7 + 2 // BCCHN_TOP (BCCHN top priority)
33
34 #define BLOC_SYNCHRO_SIZE 1 // SYNC.
35 #define BLOC_ADC_SIZE 1 // ADC in CS_MODE0
36 #define BLOC_ABORT_SIZE 3 // ABORT.
37 #define BLOC_RAACC_SIZE 3 // RAACC.
38 #define S_RECT4_SIZE 6 // All "rectangular 4" serving tasks: NP/EP/BCCHS/ALLC.
39 #define BLOC_TCHT_SIZE 3 // TCHTF / TCHTH / TCHD.
40 #define BLOC_TCHA_SIZE 3 // TCHA.
41 #define BLOC_SMSCB_SIZE 6 // SMSCB.
42 #define BLOC_FB51_SIZE 14 // FB51.
43 #define BLOC_SB51_SIZE 4 // SB51.
44 #define BLOC_SBCNF51_SIZE 4 // SBCNF51.
45 #define BLOC_FB26_SIZE 4 // FB26.
46 #define BLOC_SB26_SIZE 5 // SB26.
47 #define BLOC_SBCNF26_SIZE 5 // SBCNF26.
48 #define BLOC_HWTEST_SIZE 4 // HWTEST.
49 #define BLOC_DUL_ADL_MIXED_SIZED 7
50 #if (L1_GPRS)
51 #define BLOC_BCCHN_TRAN_SIZE 7 // BCCHN_TRAN.
52 #endif
53
54
55
56 #ifdef L1_ASYNC_C
57 /*----------------------------------------------------*/
58 /* TASK: Frequency Burst search... */
59 /*----------------------------------------------------*/
60 const T_FCT BLOC_FBNEW[] =
61 {
62 {l1s_ctrl_msagc,FBNEW,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1
63 {NULL,NO_PAR,NO_PAR}, // frame 2
64 {l1s_read_msagc,FBNEW,NO_PAR},{l1s_ctrl_fb,FBNEW,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 3
65 {NULL,NO_PAR,NO_PAR}, // frame 4
66 {l1s_read_mon_result,FBNEW, 1},{NULL,NO_PAR,NO_PAR}, // frame 5
67 {l1s_read_mon_result,FBNEW, 2},{NULL,NO_PAR,NO_PAR}, // frame 6
68 {l1s_read_mon_result,FBNEW, 3},{NULL,NO_PAR,NO_PAR}, // frame 7
69 {l1s_read_mon_result,FBNEW, 4},{NULL,NO_PAR,NO_PAR}, // frame 8
70 {l1s_read_mon_result,FBNEW, 5},{NULL,NO_PAR,NO_PAR}, // frame 9
71 {l1s_read_mon_result,FBNEW, 6},{NULL,NO_PAR,NO_PAR}, // frame 10
72 {l1s_read_mon_result,FBNEW, 7},{NULL,NO_PAR,NO_PAR}, // frame 11
73 {l1s_read_mon_result,FBNEW, 8},{NULL,NO_PAR,NO_PAR}, // frame 12
74 {l1s_read_mon_result,FBNEW, 9},{NULL,NO_PAR,NO_PAR}, // frame 13
75 {l1s_read_mon_result,FBNEW,10},{NULL,NO_PAR,NO_PAR}, // frame 14
76 {l1s_read_mon_result,FBNEW,11},{NULL,NO_PAR,NO_PAR}, // frame 15
77 {l1s_read_mon_result,FBNEW,12},{NULL,NO_PAR,NO_PAR} // frame 16
78 };
79
80 /*----------------------------------------------------*/
81 /* TASK: SB2, New Synchro Burst search... */
82 /*----------------------------------------------------*/
83 /* C W R -> AGC */
84 /* C W W R -> 1st SB */
85 /* C W W R -> 2nd SB */
86 /*----------------------------------------------------*/
87 const T_FCT BLOC_SB2[] =
88 {
89 {l1s_ctrl_msagc,SB2,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1
90 {NULL,NO_PAR,NO_PAR}, // frame 2
91 {l1s_read_msagc,SB2,NO_PAR}, {l1s_ctrl_sbgen,SB2,1}, {NULL,NO_PAR,NO_PAR}, // frame 3
92 {l1s_ctrl_sbgen,SB2,2}, {NULL,NO_PAR,NO_PAR}, // frame 4
93 {NULL,NO_PAR,NO_PAR}, // frame 5
94 {l1s_read_mon_result,SB2,1}, {NULL,NO_PAR,NO_PAR}, // frame 6
95 {l1s_read_mon_result,SB2,2}, {NULL,NO_PAR,NO_PAR} // frame 7
96 };
97
98 /*----------------------------------------------------*/
99 /* TASK: SBCONF, Synchro confirmation. */
100 /*----------------------------------------------------*/
101 /* C W R -> AGC */
102 /* C W W R -> SBCONF */
103 /*----------------------------------------------------*/
104 const T_FCT BLOC_SBCONF[] =
105 {
106 {l1s_ctrl_msagc,SBCONF,1}, {NULL,NO_PAR,NO_PAR}, // frame 1
107 {NULL,NO_PAR,NO_PAR}, // frame 2
108 {l1s_read_msagc,SBCONF,1},{l1s_ctrl_sbgen,SBCONF,1}, {NULL,NO_PAR,NO_PAR}, // frame 3
109 {NULL,NO_PAR,NO_PAR}, // frame 4
110 {NULL,NO_PAR,NO_PAR}, // frame 5
111 {l1s_read_mon_result,SBCONF,1},{NULL,NO_PAR,NO_PAR} // frame 6
112 };
113
114
115 #if ((REL99 == 1) && (FF_BHO == 1))
116 /*----------------------------------------------------*/
117 /* TASK: FBSB Frequency + Synchro Bursts Search... */
118 /*----------------------------------------------------*/
119 const T_FCT BLOC_FBSB[] =
120 {
121 {l1s_ctrl_msagc,FBSB,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1
122 {NULL,NO_PAR,NO_PAR}, // frame 2
123 {l1s_read_msagc,FBSB,NO_PAR},{l1s_ctrl_fbsb,FBSB,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 3
124 {NULL,NO_PAR,NO_PAR}, // frame 4
125 {l1s_read_mon_result,FBSB, 1},{NULL,NO_PAR,NO_PAR}, // frame 5
126 {l1s_read_mon_result,FBSB, 2},{NULL,NO_PAR,NO_PAR}, // frame 6
127 {l1s_read_mon_result,FBSB, 3},{NULL,NO_PAR,NO_PAR}, // frame 7
128 {l1s_read_mon_result,FBSB, 4},{NULL,NO_PAR,NO_PAR}, // frame 8
129 {l1s_read_mon_result,FBSB, 5},{NULL,NO_PAR,NO_PAR}, // frame 9
130 {l1s_read_mon_result,FBSB, 6},{NULL,NO_PAR,NO_PAR}, // frame 10
131 {l1s_read_mon_result,FBSB, 7},{NULL,NO_PAR,NO_PAR}, // frame 11
132 {l1s_read_mon_result,FBSB, 8},{NULL,NO_PAR,NO_PAR}, // frame 12
133 {l1s_read_mon_result,FBSB, 9},{NULL,NO_PAR,NO_PAR}, // frame 13
134 {l1s_read_mon_result,FBSB,10},{NULL,NO_PAR,NO_PAR}, // frame 14
135 {l1s_read_mon_result,FBSB,11},{NULL,NO_PAR,NO_PAR}, // frame 15
136 {l1s_read_mon_result,FBSB,12},{NULL,NO_PAR,NO_PAR}, // frame 16
137 {l1s_read_mon_result,FBSB,13},{NULL,NO_PAR,NO_PAR}, // frame 17
138 {l1s_read_mon_result,FBSB,14},{NULL,NO_PAR,NO_PAR} // frame 18
139 };
140 #endif
141
142 /*----------------------------------------------------*/
143 /* TASK: Serving cell Normal BCCH reading. */
144 /*----------------------------------------------------*/
145 /* frame 1 2 3 4 5 6 */
146 /* | | | | | | */
147 /* C W R | | | -> burst 1 */
148 /* C W R | | -> burst 2 */
149 /* C W R | -> burst 3 */
150 /* C W R -> burst 4 */
151 /*----------------------------------------------------*/
152 const T_FCT BLOC_NBCCHS[] =
153 {
154 {l1s_ctrl_snb_dl,NBCCHS,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1
155 {l1s_ctrl_snb_dl,NBCCHS,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2
156 {l1s_read_snb_dl,NBCCHS,BURST_1},{l1s_ctrl_snb_dl,NBCCHS,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3
157 {l1s_read_snb_dl,NBCCHS,BURST_2},{l1s_ctrl_snb_dl,NBCCHS,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
158 {l1s_read_snb_dl,NBCCHS,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5
159 {l1s_read_snb_dl,NBCCHS,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6
160 };
161
162 /*----------------------------------------------------*/
163 /* TASK: Serving cell Extended BCCH reading. */
164 /*----------------------------------------------------*/
165 /* frame 1 2 3 4 5 6 */
166 /* | | | | | | */
167 /* C W R | | | -> burst 1 */
168 /* C W R | | -> burst 2 */
169 /* C W R | -> burst 3 */
170 /* C W R -> burst 4 */
171 /*----------------------------------------------------*/
172 const T_FCT BLOC_EBCCHS[] =
173 {
174 {l1s_ctrl_snb_dl,EBCCHS,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1
175 {l1s_ctrl_snb_dl,EBCCHS,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2
176 {l1s_read_snb_dl,EBCCHS,BURST_1},{l1s_ctrl_snb_dl,EBCCHS,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3
177 {l1s_read_snb_dl,EBCCHS,BURST_2},{l1s_ctrl_snb_dl,EBCCHS,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
178 {l1s_read_snb_dl,EBCCHS,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5
179 {l1s_read_snb_dl,EBCCHS,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6
180 };
181
182 /*----------------------------------------------------*/
183 /* TASK: Neighbour Cell SYStem info reading. */
184 /*----------------------------------------------------*/
185 /* C W R -> AGC */
186 /* C W W W W W R -> all bursts */
187 /*----------------------------------------------------*/
188 const T_FCT BLOC_BCCHN[] =
189 {
190 {l1s_ctrl_msagc,BCCHN,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1
191 {NULL,NO_PAR,NO_PAR}, // frame 2
192 {l1s_read_msagc,BCCHN,NO_PAR},{l1s_ctrl_nnb,BCCHN,NO_PAR},{NULL,NO_PAR,NO_PAR}, // frame 3
193 {NULL,NO_PAR,NO_PAR}, // frame 4
194 {NULL,NO_PAR,NO_PAR}, // frame 5
195 {NULL,NO_PAR,NO_PAR}, // frame 6
196 {NULL,NO_PAR,NO_PAR}, // frame 7
197 {NULL,NO_PAR,NO_PAR}, // frame 8
198 {l1s_read_nnb,BCCHN,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 9
199 };
200
201 /*----------------------------------------------------*/
202 /* TASK: Neighbour Cell SYStem info reading. */
203 /*----------------------------------------------------*/
204 /* C W R -> AGC */
205 /* C W W W W W R -> all bursts */
206 /*----------------------------------------------------*/
207 const T_FCT BLOC_BCCHN_TOP[] =
208 {
209 {l1s_ctrl_msagc,BCCHN_TOP,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1
210 {NULL,NO_PAR,NO_PAR}, // frame 2
211 {l1s_read_msagc,BCCHN_TOP,NO_PAR},{l1s_ctrl_nnb,BCCHN_TOP,NO_PAR},{NULL,NO_PAR,NO_PAR}, // frame 3
212 {NULL,NO_PAR,NO_PAR}, // frame 4
213 {NULL,NO_PAR,NO_PAR}, // frame 5
214 {NULL,NO_PAR,NO_PAR}, // frame 6
215 {NULL,NO_PAR,NO_PAR}, // frame 7
216 {NULL,NO_PAR,NO_PAR}, // frame 8
217 {l1s_read_nnb,BCCHN_TOP,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 9
218 };
219
220 /*----------------------------------------------------*/
221 /* TASK: Neighbour Cell SYStem info reading. */
222 /* for packet transfer mode */
223 /*----------------------------------------------------*/
224 /* C W W W W W R -> all bursts */
225 /*----------------------------------------------------*/
226 #if (L1_GPRS)
227 const T_FCT BLOC_BCCHN_TRAN[] =
228 {
229 {l1s_ctrl_nnb,BCCHN_TRAN,NO_PAR},{NULL,NO_PAR,NO_PAR}, // frame 1
230 {NULL,NO_PAR,NO_PAR}, // frame 2
231 {NULL,NO_PAR,NO_PAR}, // frame 3
232 {NULL,NO_PAR,NO_PAR}, // frame 4
233 {NULL,NO_PAR,NO_PAR}, // frame 5
234 {NULL,NO_PAR,NO_PAR}, // frame 6
235 {l1s_read_nnb,BCCHN_TRAN,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 7
236 };
237 #endif
238
239 /*----------------------------------------------------*/
240 /* TASK: Synchronization (camp on a new serving cell) */
241 /*----------------------------------------------------*/
242 const T_FCT BLOC_SYNCHRO[] =
243 {
244 {l1s_new_synchro,NO_PAR,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 1
245 };
246
247
248 /*----------------------------------------------------*/
249 /* TASK: ADC measurement in CS_MODE0 */
250 /* C */
251 /* the ADC is performed inside the frame and the */
252 /* result is red in the same frame due to an */
253 /* Interrupt (handle by Riviera) */
254 /*----------------------------------------------------*/
255 const T_FCT BLOC_ADC[] =
256 {
257 {l1s_ctrl_ADC,NO_PAR,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 1
258 };
259
260
261 /*----------------------------------------------------*/
262 /* TASK: Short Message Service Cell Broadcast */
263 /*----------------------------------------------------*/
264 /* frame 1 2 3 4 5 6 */
265 /* | | | | | | */
266 /* C W R | | | -> hopp. + burst 1 */
267 /* C W R | | -> hopp. + burst 2 */
268 /* C W R | -> hopp. + burst 3 */
269 /* C W R -> hopp. + burst 4 + Synch back*/
270 /*----------------------------------------------------*/
271 const T_FCT BLOC_SMSCB[] =
272 {
273 {l1s_hopping_algo,SMSCB,NO_PAR},{l1s_ctrl_smscb, SMSCB,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1
274 {l1s_hopping_algo,SMSCB,NO_PAR},{l1s_ctrl_smscb, SMSCB,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2
275 {l1s_hopping_algo,SMSCB,NO_PAR},{l1s_read_snb_dl,SMSCB,BURST_1},{l1s_ctrl_smscb, SMSCB,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3
276 {l1s_hopping_algo,SMSCB,NO_PAR},{l1s_read_snb_dl,SMSCB,BURST_2},{l1s_ctrl_smscb, SMSCB,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
277 {l1s_read_snb_dl,SMSCB,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5
278 {l1s_read_snb_dl,SMSCB,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6
279 };
280
281 /*----------------------------------------------------*/
282 /* TASK: Normal Paging... */
283 /*----------------------------------------------------*/
284 /* frame 1 2 3 4 5 6 */
285 /* | | | | | | */
286 /* C W R | | | -> burst 1 */
287 /* C W R | | -> burst 2 */
288 /* C W R | -> burst 3 */
289 /* C W R -> burst 4 */
290 /*----------------------------------------------------*/
291 const T_FCT BLOC_NP[] =
292 {
293 {l1s_ctrl_snb_dl,NP,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1
294 {l1s_ctrl_snb_dl,NP,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2
295 {l1s_read_snb_dl,NP,BURST_1},{l1s_ctrl_snb_dl,NP,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3
296 {l1s_read_snb_dl,NP,BURST_2},{l1s_ctrl_snb_dl,NP,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
297 {l1s_read_snb_dl,NP,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5
298 {l1s_read_snb_dl,NP,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6
299 };
300
301 /*----------------------------------------------------*/
302 /* TASK: Extended Paging task... */
303 /*----------------------------------------------------*/
304 /* frame 1 2 3 4 5 6 */
305 /* | | | | | | */
306 /* C W R | | | -> burst 1 */
307 /* C W R | | -> burst 2 */
308 /* C W R | -> burst 3 */
309 /* C W R -> burst 4 */
310 /*----------------------------------------------------*/
311 const T_FCT BLOC_EP[] =
312 {
313 {l1s_ctrl_snb_dl,EP,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1
314 {l1s_ctrl_snb_dl,EP,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2
315 {l1s_read_snb_dl,EP,BURST_1},{l1s_ctrl_snb_dl,EP,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3
316 {l1s_read_snb_dl,EP,BURST_2},{l1s_ctrl_snb_dl,EP,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
317 {l1s_read_snb_dl,EP,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5
318 {l1s_read_snb_dl,EP,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6
319 };
320
321 /*----------------------------------------------------*/
322 /* TASK: All CCCH reading task... */
323 /*----------------------------------------------------*/
324 /* frame 1 2 3 4 5 6 */
325 /* | | | | | | */
326 /* C W R | | | -> burst 1 */
327 /* C W R | | -> burst 2 */
328 /* C W R | -> burst 3 */
329 /* C W R -> burst 4 */
330 /*----------------------------------------------------*/
331 const T_FCT BLOC_ALLC[] =
332 {
333 {l1s_ctrl_snb_dl,ALLC,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1
334 {l1s_ctrl_snb_dl,ALLC,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2
335 {l1s_read_snb_dl,ALLC,BURST_1},{l1s_ctrl_snb_dl,ALLC,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3
336 {l1s_read_snb_dl,ALLC,BURST_2},{l1s_ctrl_snb_dl,ALLC,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
337 {l1s_read_snb_dl,ALLC,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5
338 {l1s_read_snb_dl,ALLC,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6
339 };
340
341 /*----------------------------------------------------*/
342 /* TASK: SDCCH */
343 /*----------------------------------------------------*/
344 /* frame 1 2 3 4 5 6 */
345 /* | | | | | | */
346 /* C W R | | | -> burst 1 */
347 /* C W R | | -> burst 2 */
348 /* C W R | -> burst 3 */
349 /* C W R -> burst 4 */
350 /*----------------------------------------------------*/
351 const T_FCT BLOC_DDL[] =
352 {
353 {l1s_hopping_algo,DDL,NO_PAR},{l1s_ctrl_snb_dl, DDL,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1
354 {l1s_hopping_algo,DDL,NO_PAR},{l1s_ctrl_snb_dl, DDL,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2
355 {l1s_hopping_algo,DDL,NO_PAR},{l1s_read_dedic_dl,DDL,BURST_1},{l1s_ctrl_snb_dl, DDL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3
356 {l1s_hopping_algo,DDL,NO_PAR},{l1s_read_dedic_dl,DDL,BURST_2},{l1s_ctrl_snb_dl, DDL,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
357 {l1s_read_dedic_dl,DDL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5
358 {l1s_read_dedic_dl,DDL,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6
359 };
360
361 const T_FCT BLOC_DUL[] =
362 {
363 {l1s_hopping_algo,DUL,NO_PAR},{l1s_ctrl_snb_ul, DUL,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1
364 {l1s_hopping_algo,DUL,NO_PAR},{l1s_ctrl_snb_ul, DUL,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2
365 {l1s_hopping_algo,DUL,NO_PAR},{l1s_read_tx_result,DUL,BURST_1},{l1s_ctrl_snb_ul, DUL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3
366 {l1s_hopping_algo,DUL,NO_PAR},{l1s_read_tx_result,DUL,BURST_2},{l1s_ctrl_snb_ul, DUL,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
367 {l1s_read_tx_result,DUL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5
368 {l1s_read_tx_result,DUL,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6
369 };
370
371 const T_FCT BLOC_ADL[] =
372 {
373 {l1s_hopping_algo,ADL,NO_PAR},{l1s_ctrl_snb_dl, ADL,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1
374 {l1s_hopping_algo,ADL,NO_PAR},{l1s_ctrl_snb_dl, ADL,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2
375 {l1s_hopping_algo,ADL,NO_PAR},{l1s_read_dedic_dl,ADL,BURST_1},{l1s_ctrl_snb_dl, ADL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3
376 {l1s_hopping_algo,ADL,NO_PAR},{l1s_read_dedic_dl,ADL,BURST_2},{l1s_ctrl_snb_dl, ADL,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
377 {l1s_read_dedic_dl,ADL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5
378 {l1s_read_dedic_dl,ADL,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6
379 };
380
381 const T_FCT BLOC_AUL[] =
382 {
383 {l1s_hopping_algo,AUL,NO_PAR},{l1s_ctrl_snb_ul, AUL,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1
384 {l1s_hopping_algo,AUL,NO_PAR},{l1s_ctrl_snb_ul, AUL,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2
385 {l1s_hopping_algo,AUL,NO_PAR},{l1s_read_tx_result,AUL,BURST_1},{l1s_ctrl_snb_ul, AUL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3
386 {l1s_hopping_algo,AUL,NO_PAR},{l1s_read_tx_result,AUL,BURST_2},{l1s_ctrl_snb_ul, AUL,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
387 {l1s_read_tx_result,AUL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5
388 {l1s_read_tx_result,AUL,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6
389 };
390
391 /*-----------------------------------------------------------------------*/
392 /* SPECIAL CASE: (ADL4,DDL4),(ADL5,DDL5),(ADL6,DDL6). */
393 /*-----------------------------------------------------------------------*/
394 /* frame 1 2 3 4 5 6 7 */
395 /* | | | | | | | */
396 /* C(DUL,1) W(DUL,1) R(DUL,1) | | | | */
397 /* C(ADL,1) W(ADL,1) R(ADL,1) | | | */
398 /* C(DUL,2) W(DUL,2) R(DUL,2) | | | */
399 /* C(ADL,2) W(ADL,2) R(ADL,2) | | */
400 /* C(DUL,3) W(DUL,3) R(DUL,3) | | */
401 /* C(ADL,3) W(ADL,3) R(ADL,3) | */
402 /* C(DUL,4) W(DUL,4) R(DUL,4) | */
403 /* C(ADL,4) W(ADL,4) R(ADL,4) */
404 /*-----------------------------------------------------------------------*/
405 const T_FCT BLOC_DUL_ADL_MIXED[] =
406 {
407 {l1s_hopping_algo,AUL,NO_PAR},{l1s_ctrl_snb_ul, DUL,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1
408 {l1s_hopping_algo,ADL,NO_PAR},{l1s_ctrl_snb_dl, ADL,BURST_1},{l1s_ctrl_snb_ul, DUL,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2
409 {l1s_hopping_algo,ADL,NO_PAR},{l1s_read_tx_result,DUL,BURST_1},{l1s_ctrl_snb_dl, ADL,BURST_2},{l1s_ctrl_snb_ul, DUL,BURST_3}, {NULL,NO_PAR,NO_PAR}, // frame 3
410 {l1s_hopping_algo,ADL,NO_PAR},{l1s_read_dedic_dl, ADL,BURST_1},{l1s_read_tx_result,DUL,BURST_2},{l1s_ctrl_snb_dl, ADL,BURST_3},{l1s_ctrl_snb_ul, DUL,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
411 {l1s_hopping_algo,ADL,NO_PAR},{l1s_read_dedic_dl, ADL,BURST_2},{l1s_read_tx_result,DUL,BURST_3},{l1s_ctrl_snb_dl, ADL,BURST_4}, {NULL,NO_PAR,NO_PAR}, // frame 5
412 {l1s_read_dedic_dl,ADL,BURST_3},{l1s_read_tx_result,DUL,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 6
413 {l1s_read_dedic_dl,ADL,BURST_4}, {NULL,NO_PAR,NO_PAR} // frame 7
414 };
415
416 /*----------------------------------------------------*/
417 /* ABORT: used to abort a running task when a new */
418 /* task with higher priority occurs. */
419 /*----------------------------------------------------*/
420 const T_FCT BLOC_ABORT[] =
421 {
422 {l1s_abort,NO_PAR,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1
423 {l1s_reset_tx_ptr,NO_PAR,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 2
424 {l1s_read_dummy,NO_PAR,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 3
425 };
426
427 /*----------------------------------------------------*/
428 /* TASK: RACH in access mode... */
429 /*----------------------------------------------------*/
430 const T_FCT BLOC_RAACC[] =
431 {
432 {l1s_ctrl_rach,RAACC,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1
433 {NULL,NO_PAR,NO_PAR}, // frame 2
434 {l1s_read_tx_result,RAACC,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 3
435 };
436
437 /*----------------------------------------------------*/
438 /* TASK: TCH */
439 /*----------------------------------------------------*/
440 /* C W R */
441 /*----------------------------------------------------*/
442 const T_FCT BLOC_TCHTF[] =
443 {
444 {l1s_hopping_algo,TCHTF,NO_PAR},{l1s_ctrl_tchtf,TCHTF,NO_PAR}, {NULL,NO_PAR}, // frame 1
445 {NULL,NO_PAR}, // frame 2
446 {l1s_read_dedic_dl,TCHTF,NO_PAR}, {NULL,NO_PAR} // frame 3
447 };
448
449 const T_FCT BLOC_TCHTH[] =
450 {
451 {l1s_hopping_algo,TCHTH,NO_PAR},{l1s_ctrl_tchth,TCHTH,NO_PAR}, {NULL,NO_PAR}, // frame 1
452 {NULL,NO_PAR}, // frame 2
453 {l1s_read_dedic_dl,TCHTH,NO_PAR}, {NULL,NO_PAR} // frame 3
454 };
455
456 const T_FCT BLOC_TCHD[] =
457 {
458 {l1s_ctrl_tchtd,TCHD,NO_PAR}, {NULL,NO_PAR}, // frame 1
459 {NULL,NO_PAR}, // frame 2
460 {l1s_read_dummy,TCHD,NO_PAR}, {NULL,NO_PAR} // frame 3
461 };
462
463 const T_FCT BLOC_TCHA[] =
464 {
465 {l1s_hopping_algo,TCHA,NO_PAR},{l1s_ctrl_tcha,TCHA,NO_PAR}, {NULL,NO_PAR}, // frame 1
466 {NULL,NO_PAR}, // frame 2
467 {l1s_read_dedic_dl,TCHA,NO_PAR}, {NULL,NO_PAR} // frame 3
468 };
469
470 /*----------------------------------------------------*/
471 /* TASK: Frequency Burst search in dedic/SDCCH... */
472 /*----------------------------------------------------*/
473 const T_FCT BLOC_FB51[] =
474 {
475 {l1s_ctrl_fb,FB51,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1
476 {NULL,NO_PAR,NO_PAR}, // frame 2
477 {l1s_read_mon_result,FB51, 1},{NULL,NO_PAR,NO_PAR}, // frame 3
478 {l1s_read_mon_result,FB51, 2},{NULL,NO_PAR,NO_PAR}, // frame 4
479 {l1s_read_mon_result,FB51, 3},{NULL,NO_PAR,NO_PAR}, // frame 5
480 {l1s_read_mon_result,FB51, 4},{NULL,NO_PAR,NO_PAR}, // frame 6
481 {l1s_read_mon_result,FB51, 5},{NULL,NO_PAR,NO_PAR}, // frame 7
482 {l1s_read_mon_result,FB51, 6},{NULL,NO_PAR,NO_PAR}, // frame 8
483 {l1s_read_mon_result,FB51, 7},{NULL,NO_PAR,NO_PAR}, // frame 9
484 {l1s_read_mon_result,FB51, 8},{NULL,NO_PAR,NO_PAR}, // frame 10
485 {l1s_read_mon_result,FB51, 9},{NULL,NO_PAR,NO_PAR}, // frame 11
486 {l1s_read_mon_result,FB51,10},{NULL,NO_PAR,NO_PAR}, // frame 12
487 {l1s_read_mon_result,FB51,11},{NULL,NO_PAR,NO_PAR}, // frame 13
488 {l1s_read_mon_result,FB51,12},{NULL,NO_PAR,NO_PAR} // frame 14
489 };
490
491 /*----------------------------------------------------*/
492 /* TASK: SB51, Synchro Burst reading. Dedic/SDCCH. */
493 /*----------------------------------------------------*/
494 /* C W W R -> SB */
495 /*----------------------------------------------------*/
496 const T_FCT BLOC_SB51[] =
497 {
498 {l1s_ctrl_sbgen,SB51,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1
499 {NULL,NO_PAR,NO_PAR}, // frame 2
500 {NULL,NO_PAR,NO_PAR}, // frame 3
501 {l1s_read_mon_result,SB51,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 4
502 };
503
504 /*----------------------------------------------------*/
505 /* TASK: SBCNF51, Synchro confirmation. Dedic/SDCCH. */
506 /*----------------------------------------------------*/
507 /* C W W R -> SBCONF */
508 /*----------------------------------------------------*/
509 const T_FCT BLOC_SBCNF51[] =
510 {
511 {l1s_ctrl_sbgen,SBCNF51,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1
512 {NULL,NO_PAR,NO_PAR}, // frame 2
513 {NULL,NO_PAR,NO_PAR}, // frame 3
514 {l1s_read_mon_result,SBCNF51,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 4
515 };
516
517 /*----------------------------------------------------*/
518 /* TASK: FB26, Frequency Burst search in dedic/TCH... */
519 /*----------------------------------------------------*/
520 /* C W W R */
521 /*----------------------------------------------------*/
522 const T_FCT BLOC_FB26[] =
523 {
524 {l1s_ctrl_fb26,FB26,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1
525 {NULL,NO_PAR,NO_PAR}, // frame 2
526 {NULL,NO_PAR,NO_PAR}, // frame 3
527 {l1s_read_mon_result,FB26,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 4
528 };
529
530 /*----------------------------------------------------*/
531 /* TASK: SB26, Synchro. Burst reading in dedic/TCH... */
532 /*----------------------------------------------------*/
533 /* C W W W R */
534 /*----------------------------------------------------*/
535 const T_FCT BLOC_SB26[] =
536 {
537 {l1s_ctrl_sb26,SB26,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1
538 {NULL,NO_PAR,NO_PAR}, // frame 2
539 {NULL,NO_PAR,NO_PAR}, // frame 3
540 {NULL,NO_PAR,NO_PAR}, // frame 4
541 {l1s_read_mon_result,SB26,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 5
542 };
543
544 /*----------------------------------------------------*/
545 /* TASK: SBCNF26, Synchro. Burst reading in dedic/TCH.*/
546 /*----------------------------------------------------*/
547 /* C W W W R */
548 /*----------------------------------------------------*/
549 const T_FCT BLOC_SBCNF26[] =
550 {
551 {l1s_ctrl_sb26,SBCNF26,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1
552 {NULL,NO_PAR,NO_PAR}, // frame 2
553 {NULL,NO_PAR,NO_PAR}, // frame 3
554 {NULL,NO_PAR,NO_PAR}, // frame 4
555 {l1s_read_mon_result,SBCNF26,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 5
556 };
557
558 /*----------------------------------------------------*/
559 /* TASK: HWTEST after power-on... */
560 /*----------------------------------------------------*/
561 const T_FCT BLOC_HWTEST[] =
562 {
563 {l1s_ctrl_hwtest,HWTEST,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1
564 {NULL,NO_PAR,NO_PAR}, // frame 2
565 {NULL,NO_PAR,NO_PAR}, // frame 3
566 {l1s_read_hwtest,HWTEST,NO_PAR}, {NULL,NO_PAR,NO_PAR} // frame 4
567 };
568
569 #else
570 extern T_FCT BLOC_FB[];
571 extern T_FCT BLOC_SB[];
572 extern T_FCT BLOC_BCCHS[];
573 extern T_FCT BLOC_BCCHN[];
574 extern T_FCT BLOC_BCCHN_TOP[];
575 extern T_FCT BLOC_EP[];
576 extern T_FCT BLOC_SYNCHRO[];
577 extern T_FCT BLOC_ADC[];
578 extern T_FCT BLOC_SMSCB[];
579 extern T_FCT BLOC_NP[];
580 extern T_FCT BLOC_ALLC[];
581 extern T_FCT BLOC_DDL[];
582 extern T_FCT BLOC_DUL[];
583 extern T_FCT BLOC_ADL[];
584 extern T_FCT BLOC_AUL[];
585 extern T_FCT BLOC_DUL_ADL_MIXED[];
586 extern T_FCT BLOC_ABORT[];
587 extern T_FCT BLOC_RAACC[];
588 extern T_FCT BLOC_TCHTF[];
589 extern T_FCT BLOC_TCHTH[];
590 extern T_FCT BLOC_TCHTD[];
591 extern T_FCT BLOC_TCHA[];
592 extern T_FCT BLOC_FB51[];
593 extern T_FCT BLOC_SB51[];
594 extern T_FCT BLOC_SBCNF51[];
595 extern T_FCT BLOC_FB26[];
596 extern T_FCT BLOC_SB26[];
597 extern T_FCT BLOC_SBCNF26[];
598 extern T_FCT BLOC_HWTEST[];
599 #if ((REL99 == 1) && (FF_BHO == 1))
600 extern T_FCT BLOC_FBSB[];
601 #endif
602 #if (L1_GPRS)
603 extern T_FCT BLOC_BCCHN_TRAN[];
604 #endif
605
606 #endif
607 #endif //ndef L1_MFTAB_H
608
609
610