comparison L1/include/l1_tabs.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_TABS.H
4 *
5 * Filename l1_tabs.h
6 * Copyright 2003 (C) Texas Instruments
7 *
8 ************* Revision Controle System Header *************/
9 /***********************************************************
10 * Content:
11 * This file contains the miscelaneous ROM tables.
12 ***********************************************************/
13
14 #ifndef L1_TABS_H
15 #define L1_TABS_H
16
17 #ifdef L1_ASYNC_C
18 /*-----------------------------------------------------------------*/
19 /* Idle Tasks info. (Paging position, extended Paging position...) */
20 /*-----------------------------------------------------------------*/
21 /* REM: */
22 /* The "working area" field gives the starting position of an area */
23 /* it will be used for neighbour: - FB search, */
24 /* - SB reading, */
25 /* The value given for each parameter set takes into account the */
26 /* size of the "FB search" task and the CBCH task. */
27 /*-----------------------------------------------------------------*/
28 // NP or EP task size: 1 + 4 + 1 = 6.
29 // BCCHS task size: 1 + 4 + 1 = 6.
30 // FB task size: 1 + 12 + 1 = 14. --+-- FB + SB task take 15 TDMA (pipeline overlay).
31 // SB task size: 1 + 2 + 1 = 4. --+
32 // CNF, SB task size: 1 + 2 + 1 = 4.
33 // BC (Broad. Channel): 1 + 4 + 1 = 6
34
35 const T_IDLE_TASK_INFO IDLE_INFO_NCOMB[(MAX_AG_BLKS_RES_NCOMB+1) * (MAX_PG_BLOC_INDEX_NCOMB+1)] =
36 // BS_CCCH_SDCCH_COMB = False, BCCH not combined.
37 {
38 // BS_AG_BLKS_RES = 0.
39 // -------------------
40 // Paging, Ext Paging
41 { CCCH_0, CCCH_2 }, // Paging Block Index = 0.
42 { CCCH_1, CCCH_3 }, // Paging Block Index = 1.
43 { CCCH_2, CCCH_4 }, // Paging Block Index = 2.
44 { CCCH_3, CCCH_5 }, // Paging Block Index = 3.
45 { CCCH_4, CCCH_6 }, // Paging Block Index = 4.
46 { CCCH_5, CCCH_7 }, // Paging Block Index = 5.
47 { CCCH_6, CCCH_8 }, // Paging Block Index = 6.
48 { CCCH_7, CCCH_0 }, // Paging Block Index = 7.
49 { CCCH_8, CCCH_1 }, // Paging Block Index = 8.
50
51 // BS_AG_BLKS_RES = 1.
52 // -------------------
53 // Paging, Ext Paging
54 { CCCH_1, CCCH_3 }, // Paging Block Index = 0.
55 { CCCH_2, CCCH_4 }, // Paging Block Index = 1.
56 { CCCH_3, CCCH_5 }, // Paging Block Index = 2.
57 { CCCH_4, CCCH_6 }, // Paging Block Index = 3.
58 { CCCH_5, CCCH_7 }, // Paging Block Index = 4.
59 { CCCH_6, CCCH_8 }, // Paging Block Index = 5.
60 { CCCH_7, CCCH_1 }, // Paging Block Index = 6.
61 { CCCH_8, CCCH_2 }, // Paging Block Index = 7.
62 { NULL, NULL }, // Paging Block Index = 8.
63
64 // BS_AG_BLKS_RES = 2.
65 // -------------------
66 // Paging, Ext Paging
67 { CCCH_2, CCCH_4 }, // Paging Block Index = 0.
68 { CCCH_3, CCCH_5 }, // Paging Block Index = 1.
69 { CCCH_4, CCCH_6 }, // Paging Block Index = 2.
70 { CCCH_5, CCCH_7 }, // Paging Block Index = 3.
71 { CCCH_6, CCCH_8 }, // Paging Block Index = 4.
72 { CCCH_7, CCCH_2 }, // Paging Block Index = 5.
73 { CCCH_8, CCCH_3 }, // Paging Block Index = 6.
74 { NULL, NULL }, // Paging Block Index = 7.
75 { NULL, NULL }, // Paging Block Index = 8.
76
77 // BS_AG_BLKS_RES = 3.
78 // -------------------
79 // Paging, Ext Paging,
80 { CCCH_3, CCCH_5 }, // Paging Block Index = 0.
81 { CCCH_4, CCCH_6 }, // Paging Block Index = 1.
82 { CCCH_5, CCCH_7 }, // Paging Block Index = 2.
83 { CCCH_6, CCCH_8 }, // Paging Block Index = 3.
84 { CCCH_7, CCCH_3 }, // Paging Block Index = 4.
85 { CCCH_8, CCCH_4 }, // Paging Block Index = 5.
86 { NULL, NULL }, // Paging Block Index = 6.
87 { NULL, NULL }, // Paging Block Index = 7.
88 { NULL, NULL }, // Paging Block Index = 8.
89
90 // BS_AG_BLKS_RES = 4.
91 // -------------------
92 // Paging, Ext Paging
93 { CCCH_4, CCCH_6 }, // Paging Block Index = 0.
94 { CCCH_5, CCCH_7 }, // Paging Block Index = 1.
95 { CCCH_6, CCCH_8 }, // Paging Block Index = 2.
96 { CCCH_7, CCCH_4 }, // Paging Block Index = 3.
97 { CCCH_8, CCCH_5 }, // Paging Block Index = 4.
98 { NULL, NULL }, // Paging Block Index = 5.
99 { NULL, NULL }, // Paging Block Index = 6.
100 { NULL, NULL }, // Paging Block Index = 7.
101 { NULL, NULL }, // Paging Block Index = 8.
102
103 // BS_AG_BLKS_RES = 5.
104 // -------------------
105 // Paging, Ext Paging
106 { CCCH_5, CCCH_7 }, // Paging Block Index = 0.
107 { CCCH_6, CCCH_8 }, // Paging Block Index = 1.
108 { CCCH_7, CCCH_5 }, // Paging Block Index = 2.
109 { CCCH_8, CCCH_6 }, // Paging Block Index = 3.
110 { NULL, NULL }, // Paging Block Index = 4.
111 { NULL, NULL }, // Paging Block Index = 5.
112 { NULL, NULL }, // Paging Block Index = 6.
113 { NULL, NULL }, // Paging Block Index = 7.
114 { NULL, NULL }, // Paging Block Index = 8.
115
116 // BS_AG_BLKS_RES = 6.
117 // -------------------
118 // Paging, Ext Paging,
119 { CCCH_6, CCCH_8 }, // Paging Block Index = 0.
120 { CCCH_7, CCCH_6 }, // Paging Block Index = 1.
121 { CCCH_8, CCCH_7 }, // Paging Block Index = 2.
122 { NULL, NULL }, // Paging Block Index = 3.
123 { NULL, NULL }, // Paging Block Index = 4.
124 { NULL, NULL }, // Paging Block Index = 5.
125 { NULL, NULL }, // Paging Block Index = 6.
126 { NULL, NULL }, // Paging Block Index = 7.
127 { NULL, NULL }, // Paging Block Index = 8.
128
129 // BS_AG_BLKS_RES = 7.
130 // -------------------
131 // Paging, Ext Paging
132 { CCCH_7, CCCH_7 }, // Paging Block Index = 0.
133 { CCCH_8, CCCH_8 }, // Paging Block Index = 1.
134 { NULL, NULL }, // Paging Block Index = 2.
135 { NULL, NULL }, // Paging Block Index = 3.
136 { NULL, NULL }, // Paging Block Index = 4.
137 { NULL, NULL }, // Paging Block Index = 5.
138 { NULL, NULL }, // Paging Block Index = 6.
139 { NULL, NULL }, // Paging Block Index = 7.
140 { NULL, NULL } // Paging Block Index = 8.
141 };
142
143 const T_IDLE_TASK_INFO IDLE_INFO_COMB[(MAX_AG_BLKS_RES_COMB+1) * (MAX_PG_BLOC_INDEX_COMB+1)] =
144 // BS_CCCH_SDCCH_COMB = TRUE, BCCH combined.
145 {
146 // BS_AG_BLKS_RES = 0.
147 // -------------------
148 // Paging, Ext Paging, offset, working_area
149 { CCCH_0, CCCH_2 }, // Paging Block Index = 0.
150 { CCCH_1, CCCH_0 }, // Paging Block Index = 1.
151 { CCCH_2, CCCH_1 }, // Paging Block Index = 2.
152
153 // BS_AG_BLKS_RES = 1.
154 // -------------------
155 // Paging, Ext Paging, offset, working_area
156 { CCCH_1, CCCH_1 }, // Paging Block Index = 0.
157 { CCCH_2, CCCH_2 }, // Paging Block Index = 1.
158 { NULL, NULL }, // Paging Block Index = 2.
159
160 // BS_AG_BLKS_RES = 2.
161 // -------------------
162 // Paging, Ext Paging, offset, working_area
163 { CCCH_2, CCCH_2 }, // Paging Block Index = 0.
164 { NULL, NULL }, // Paging Block Index = 1.
165 { NULL, NULL } // Paging Block Index = 2.
166 };
167
168
169 /*-------------------------------------*/
170 /* Table giving the number of Paging */
171 /* blocks in a MF51. */
172 /* (called "N div BS_PA_MFRMS" in */
173 /* GSM05.02, Page 21). */
174 /*-------------------------------------*/
175
176 // BS_CCCH_SDCCH_COMB = False, BCCH not combined.
177 const UWORD8 NBPCH_IN_MF51_NCOMB[(MAX_AG_BLKS_RES_NCOMB+1)] =
178 {
179 9, // BS_AG_BLKS_RES = 0.
180 8, // BS_AG_BLKS_RES = 1.
181 7, // BS_AG_BLKS_RES = 2.
182 6, // BS_AG_BLKS_RES = 3.
183 5, // BS_AG_BLKS_RES = 4.
184 4, // BS_AG_BLKS_RES = 5.
185 3, // BS_AG_BLKS_RES = 6.
186 2 // BS_AG_BLKS_RES = 7.
187 };
188
189 // BS_CCCH_SDCCH_COMB = True, BCCH combined.
190 const UWORD8 NBPCH_IN_MF51_COMB[(MAX_AG_BLKS_RES_COMB+1)] =
191 {
192 3, // BS_AG_BLKS_RES = 0.
193 2, // BS_AG_BLKS_RES = 1.
194 1 // BS_AG_BLKS_RES = 2.
195 };
196
197 // Initial value for Downlink Signalling failure Counter (DSC).
198 const UWORD8 DSC_INIT_VALUE[MAX_BS_PA_MFRMS-1] =
199 {
200 45, // BS_PA_MFRMS = 2.
201 30, // BS_PA_MFRMS = 3.
202 23, // BS_PA_MFRMS = 4.
203 18, // BS_PA_MFRMS = 5.
204 15, // BS_PA_MFRMS = 6.
205 13, // BS_PA_MFRMS = 7.
206 11, // BS_PA_MFRMS = 8.
207 10 // BS_PA_MFRMS = 9.
208 };
209
210 // REM: 2nd block of SDCCH is always at the same position as the first block
211 // but 1 mf51 later.
212 // REM: monitoring during SDCCH used a fixe area (FB51/SB51/SBCNF51 tasks).
213 // Here is given the area starting position. This position is chosen
214 // to allow the equations for SBCNF51 occurence as it is in the l1s
215 // scheduler (the area do not overlap the end of 102 multiframe
216 // structure).
217 // Table for SDCCH description, Down Link & Up link, Not combined case.
218 const T_SDCCH_DESC SDCCH_DESC_NCOMB[8] =
219 {
220 // "dl_D" , "dl_A" , "ul_D" , "ul_A". , "monit. area"
221 { 51 - 12 , 32 - 12 , 15 - 12 , 47 - 12 , 70 - 12 }, // SDCCH, D0
222 { 55 - 12 , 36 - 12 , 19 - 12 , 51 - 12 , 74 - 12 }, // SDCCH, D1
223 { 59 - 12 , 40 - 12 , 23 - 12 , 55 - 12 , 78 - 12 }, // SDCCH, D2
224 { 12 - 12 , 44 - 12 , 27 - 12 , 59 - 12 , 82 - 12 }, // SDCCH, D3
225 { 16 - 12 , 83 - 12 , 31 - 12 , 98 - 12 , 35 - 12 }, // SDCCH, D4
226 { 20 - 12 , 87 - 12 , 35 - 12 , 102 - 12 , 39 - 12 }, // SDCCH, D5
227 { 24 - 12 , 91 - 12 , 39 - 12 , 4 - 12 + 102 , 43 - 12 }, // SDCCH, D6
228 { 28 - 12 , 95 - 12 , 43 - 12 , 8 - 12 + 102 , 47 - 12 } // SDCCH, D7
229 };
230
231 // REM: monitoring during SDCCH used a fixe area (FB51/SB51/SBCNF51 tasks).
232 // Here is given the area starting position. This position is chosen
233 // to allow the equations for SBCNF51 occurence as it is in the l1s
234 // scheduler (the area do not overlap the end of 102 multiframe
235 // structure).
236 // Table for SDCCH description, Down Link & Up link, Combined case.
237 const T_SDCCH_DESC SDCCH_DESC_COMB[4] =
238 {
239 // "dl_D" , "dl_A" , "ul_D" , "ul_A". , "monit. area"
240 { 73 - 37 , 42 - 37 , 37 - 37 , 57 - 37 , 92 - 37 }, // SDCCH, D0
241 { 77 - 37 , 46 - 37 , 41 - 37 , 61 - 37 , 96 - 37 }, // SDCCH, D1
242 { 83 - 37 , 93 - 37 , 47 - 37 , 6 - 37 + 102 , 51 - 37 }, // SDCCH, D2
243 { 87 - 37 , 97 - 37 , 51 - 37 , 10 - 37 + 102 , 55 - 37 } // SDCCH, D3
244 };
245
246 // Table for HOPPING SEQUENCE GENERATION ALGORITHM.
247 const UWORD8 RNTABLE[114] =
248 {
249 48, 98, 63, 1, 36, 95, 78, 102, 94, 73,
250 0, 64, 25, 81, 76, 59, 124, 23, 104, 100,
251 101, 47, 118, 85, 18, 56, 96, 86, 54, 2,
252 80, 34, 127, 13, 6, 89, 57, 103, 12, 74,
253 55, 111, 75, 38, 109, 71, 112, 29, 11, 88,
254 87, 19, 3, 68, 110, 26, 33, 31, 8, 45,
255 82, 58, 40, 107, 32, 5, 106, 92, 62, 67,
256 77, 108, 122, 37, 60, 66, 121, 42, 51, 126,
257 117, 114, 4, 90, 43, 52, 53, 113, 120, 72,
258 16, 49, 7, 79, 119, 61, 22, 84, 9, 97,
259 91, 15, 21, 24, 46, 39, 93, 105, 65, 70,
260 125, 99, 17, 123
261 };
262
263
264 // Table giving the RACH slot positions when COMBINED.
265 // Rem: all is shifted left by 1 to map the position of the possible "contoles".
266 const UWORD8 COMBINED_RA_DISTRIB[51] =
267 {
268 0, 0, 0,
269 1, 1,
270 0, 0, 0, 0, 0, 0, 0, 0,
271 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
272 0, 0, 0, 0, 0, 0, 0, 0,
273 1, 1,
274 0, 0, 0, 0, 0
275 };
276
277 #if !L1_GPRS
278 const T_TASK_MFTAB TASK_ROM_MFTAB[NBR_DL_L1S_TASKS] =
279 {
280 { BLOC_HWTEST, BLOC_HWTEST_SIZE }, // HWTEST
281 { BLOC_ADC , BLOC_ADC_SIZE }, // ADC in CS_MODE0
282 { NULL, 0 }, // DEDIC (not meaningfull)
283 { BLOC_RAACC, BLOC_RAACC_SIZE }, // RAACC
284 { NULL, 0 }, // RAHO (not meaningfull)
285 { NULL, 0 }, // NSYNC (not meaningfull)
286 { BLOC_FBNEW, BLOC_FBNEW_SIZE }, // FBNEW
287 { BLOC_SBCONF, BLOC_SBCONF_SIZE }, // SBCONF
288 { BLOC_SB2, BLOC_SB2_SIZE }, // SB2
289 { BLOC_FB26, BLOC_FB26_SIZE }, // FB26
290 { BLOC_SB26, BLOC_SB26_SIZE }, // SB26
291 { BLOC_SBCNF26, BLOC_SBCNF26_SIZE }, // SBCNF26
292 { BLOC_FB51, BLOC_FB51_SIZE }, // FB51
293 { BLOC_SB51, BLOC_SB51_SIZE }, // SB51
294 { BLOC_SBCNF51, BLOC_SBCNF51_SIZE }, // SBCNF51
295 { BLOC_BCCHN, BLOC_BCCHN_SIZE }, // BCCHN
296 { BLOC_ALLC, S_RECT4_SIZE }, // ALLC
297 { BLOC_EBCCHS, S_RECT4_SIZE }, // EBCCHS
298 { BLOC_NBCCHS, S_RECT4_SIZE }, // NBCCHS
299 { BLOC_SMSCB, BLOC_SMSCB_SIZE }, // SMSCB
300 { BLOC_NP, S_RECT4_SIZE }, // NP
301 { BLOC_EP, S_RECT4_SIZE }, // EP
302 { BLOC_ADL, S_RECT4_SIZE }, // ADL
303 { BLOC_AUL, S_RECT4_SIZE }, // AUL
304 { BLOC_DDL, S_RECT4_SIZE }, // DDL
305 { BLOC_DUL, S_RECT4_SIZE }, // DUL
306 { BLOC_TCHD, BLOC_TCHT_SIZE }, // TCHD
307 { BLOC_TCHA, BLOC_TCHA_SIZE }, // TCHA
308 { BLOC_TCHTF, BLOC_TCHT_SIZE }, // TCHTF
309 { BLOC_TCHTH, BLOC_TCHT_SIZE }, // TCHTH
310 { BLOC_BCCHN_TOP,BLOC_BCCHN_TOP_SIZE}, // BCCHN_TOP
311 #if ((REL99 == 1) && (FF_BHO == 1))
312 { BLOC_FBSB, BLOC_FBSB_SIZE }, // FBSB
313 #endif
314 { BLOC_SYNCHRO, BLOC_SYNCHRO_SIZE } // SYNCHRO
315 };
316
317 const UWORD8 DSP_TASK_CODE[NBR_DL_L1S_TASKS] =
318 {
319 CHECKSUM_DSP_TASK,// HWTEST
320 0, // DEDIC (not meaningfull)
321 0, // ADC (not meaningfull)
322 RACH_DSP_TASK, // RAACC
323 RACH_DSP_TASK, // RAHO
324 0, // NSYNC (not meaningfull)
325 FB_DSP_TASK, // FBNEW
326 SB_DSP_TASK, // SBCONF
327 SB_DSP_TASK, // SB2
328 TCH_FB_DSP_TASK, // FB26
329 TCH_SB_DSP_TASK, // SB26
330 TCH_SB_DSP_TASK, // SBCNF26
331 FB_DSP_TASK, // FB51
332 SB_DSP_TASK, // SB51
333 SB_DSP_TASK, // SBCNF51
334 NBN_DSP_TASK, // BCCHN
335 ALLC_DSP_TASK, // ALLC
336 NBS_DSP_TASK, // EBCCHS
337 NBS_DSP_TASK, // NBCCHS
338 DDL_DSP_TASK, // Temporary (BUG IN SIMULATOR) CB_DSP_TASK, // SMSCB
339 NP_DSP_TASK, // NP
340 EP_DSP_TASK, // EP
341 ADL_DSP_TASK, // ADL
342 AUL_DSP_TASK, // AUL
343 DDL_DSP_TASK, // DDL
344 DUL_DSP_TASK, // DUL
345 TCHD_DSP_TASK, // TCHD
346 TCHA_DSP_TASK, // TCHA
347 TCHT_DSP_TASK, // TCHTF
348 TCHT_DSP_TASK, // TCHTH
349 NBN_DSP_TASK, // BCCHN_TOP == BCCHN
350 #if ((REL99 == 1) && (FF_BHO == 1))
351 FBSB_DSP_TASK, // FBSB
352 #endif
353 0, // SYNCHRO (not meaningfull)
354 };
355 #else
356 const T_TASK_MFTAB TASK_ROM_MFTAB[NBR_DL_L1S_TASKS] =
357 {
358 { BLOC_HWTEST, BLOC_HWTEST_SIZE }, // HWTEST
359 { BLOC_ADC, BLOC_ADC_SIZE }, // ADC in CS_MODE0
360 { NULL, 0 }, // DEDIC (not meaningfull)
361 { BLOC_RAACC, BLOC_RAACC_SIZE }, // RAACC
362 { NULL, 0 }, // RAHO (not meaningfull)
363 { NULL, 0 }, // NSYNC (not meaningfull)
364 { BLOC_POLL , BLOC_POLL_SIZE }, // POLL
365 { BLOC_PRACH, BLOC_PRACH_SIZE }, // PRACH
366 { BLOC_ITMEAS, BLOC_ITMEAS_SIZE }, // ITMEAS
367 { BLOC_FBNEW, BLOC_FBNEW_SIZE }, // FBNEW
368 { BLOC_SBCONF, BLOC_SBCONF_SIZE }, // SBCONF
369 { BLOC_SB2, BLOC_SB2_SIZE }, // SB2
370 { BLOC_PTCCH, BLOC_PTCCH_SIZE }, // PTCCH
371 { BLOC_FB26, BLOC_FB26_SIZE }, // FB26
372 { BLOC_SB26, BLOC_SB26_SIZE }, // SB26
373 { BLOC_SBCNF26, BLOC_SBCNF26_SIZE }, // SBCNF26
374 { BLOC_FB51, BLOC_FB51_SIZE }, // FB51
375 { BLOC_SB51, BLOC_SB51_SIZE }, // SB51
376 { BLOC_SBCNF51, BLOC_SBCNF51_SIZE }, // SBCNF51
377 { BLOC_PDTCH, BLOC_PDTCH_SIZE }, // PDTCH
378 { BLOC_BCCHN, BLOC_BCCHN_SIZE }, // BCCHN
379 { BLOC_ALLC, S_RECT4_SIZE }, // ALLC
380 { BLOC_EBCCHS, S_RECT4_SIZE }, // EBCCHS
381 { BLOC_NBCCHS, S_RECT4_SIZE }, // NBCCHS
382 { BLOC_ADL, S_RECT4_SIZE }, // ADL
383 { BLOC_AUL, S_RECT4_SIZE }, // AUL
384 { BLOC_DDL, S_RECT4_SIZE }, // DDL
385 { BLOC_DUL, S_RECT4_SIZE }, // DUL
386 { BLOC_TCHD, BLOC_TCHT_SIZE }, // TCHD
387 { BLOC_TCHA, BLOC_TCHA_SIZE }, // TCHA
388 { BLOC_TCHTF, BLOC_TCHT_SIZE }, // TCHTF
389 { BLOC_TCHTH, BLOC_TCHT_SIZE }, // TCHTH
390 { BLOC_PALLC, BLOC_PCCCH_SIZE }, // PALLC
391 { BLOC_SMSCB, BLOC_SMSCB_SIZE }, // SMSCB
392 { BLOC_PBCCHS, BLOC_PBCCHS_SIZE }, // PBCCHS
393 { BLOC_PNP, BLOC_PCCCH_SIZE }, // PNP
394 { BLOC_PEP, BLOC_PCCCH_SIZE }, // PEP
395 { BLOC_SINGLE, BLOC_SINGLE_SIZE }, // SINGLE
396 { BLOC_PBCCHN_TRAN, BLOC_PBCCHN_TRAN_SIZE }, // PBCCHN_TRAN
397 { BLOC_PBCCHN_IDLE, BLOC_PBCCHN_IDLE_SIZE }, // PBCCHN_IDLE
398 { BLOC_BCCHN_TRAN, BLOC_BCCHN_TRAN_SIZE }, // BCCHN_TRAN
399 { BLOC_NP, S_RECT4_SIZE }, // NP
400 { BLOC_EP, S_RECT4_SIZE }, // EP
401 { BLOC_BCCHN_TOP, BLOC_BCCHN_TOP_SIZE}, // BCCHN_TOP
402 #if ((REL99 == 1) && (FF_BHO == 1))
403 { BLOC_FBSB, BLOC_FBSB_SIZE }, // FBSB
404 #endif
405 { BLOC_SYNCHRO, BLOC_SYNCHRO_SIZE } // SYNCHRO
406 };
407
408 const UWORD8 DSP_TASK_CODE[NBR_DL_L1S_TASKS] =
409 {
410 CHECKSUM_DSP_TASK,// HWTEST
411 0, // ADC (not meaningfull)
412 0, // DEDIC (not meaningfull)
413 RACH_DSP_TASK, // RAACC
414 RACH_DSP_TASK, // RAHO
415 0, // NSYNC (not meaningfull)
416 0, // POLL (not meaningfull)
417 0, // PRACH (not meaningfull)
418 0, // ITMEAS
419 FB_DSP_TASK, // FBNEW
420 SB_DSP_TASK, // SBCONF
421 SB_DSP_TASK, // SB2
422 PTCCHU_DSP_TASK, // PTCCH
423 TCH_FB_DSP_TASK, // FB26
424 TCH_SB_DSP_TASK, // SB26
425 TCH_SB_DSP_TASK, // SBCNF26
426 FB_DSP_TASK, // FB51
427 SB_DSP_TASK, // SB51
428 SB_DSP_TASK, // SBCNF51
429 0, // PDTCH (not meaningfull)
430 NBN_DSP_TASK, // BCCHN
431 ALLC_DSP_TASK, // ALLC
432 NBS_DSP_TASK, // EBCCHS
433 NBS_DSP_TASK, // NBCCHS
434 ADL_DSP_TASK, // ADL
435 AUL_DSP_TASK, // AUL
436 DDL_DSP_TASK, // DDL
437 DUL_DSP_TASK, // DUL
438 TCHD_DSP_TASK, // TCHD
439 TCHA_DSP_TASK, // TCHA
440 TCHT_DSP_TASK, // TCHTF
441 TCHT_DSP_TASK, // TCHTH
442 0, // PALLC (not meaningfull)
443 DDL_DSP_TASK, // Temporary (BUG IN SIMULATOR) CB_DSP_TASK, // SMSCB
444 DDL_DSP_TASK, // PBCCHS (In order to allow PBCCHS running in CS or Idle mode, we have to specify a valid DSP task in order to request a PBCCHS with the GSM scheduler)
445 0, // PNP (not meaningfull)
446 0, // PEP (not meaningfull)
447 0, // SINGLE (not meaningfull)
448 0, // PBCCHN_TRAN (not meaningfull)
449 DDL_DSP_TASK, // PBCCHN_IDLE (only for GSM scheduler the task used is the same as SMSCB task)
450 NBN_DSP_TASK, // BCCHN_TRAN == BCCHN
451 NP_DSP_TASK, // NP
452 EP_DSP_TASK, // EP
453 NBN_DSP_TASK, // BCCHN_TOP == BCCHN
454 #if ((REL99 == 1) && (FF_BHO == 1))
455 FBSB_DSP_TASK, // FBSB
456 #endif
457 0 // SYNCHRO (not meaningfull)
458 };
459
460 #endif
461
462 const UWORD8 REPORTING_PERIOD[] =
463 {
464 255, // INVALID_CHANNEL -> invalid reporting period
465 104, // TCH_F
466 104, // TCH_H
467 102, // SDCCH_4
468 102 // SDCCH_8
469 };
470
471 const UWORD8 TOA_PERIOD_LEN[] =
472 {
473 0, // CS_MODE0 not used for histogram filling
474 12, // CS_MODE histogram length
475 12, // I_MODE histogram length
476 12, // CON_EST_MODE1 histogram length
477 144, // CON_EST_MODE2 histogram length
478 36, // DEDIC_MODE (Full rate) histogram length
479 42, // DEDIC_MODE (Half rate) histogram length
480 #if L1_GPRS
481 16, // PACKET TRANSFER MODE histogram length
482 #endif
483 };
484
485 // #if (STD == GSM)
486 const UWORD8 MIN_TXPWR_GSM[] =
487 {
488 0, // unused.
489 0, // Power class = 1, unused for GSM900
490 2, // Power class = 2.
491 3, // Power class = 3.
492 5, // Power class = 4.
493 7 // Power class = 5.
494 };
495 // #elif (STD == PCS1900)
496 const UWORD8 MIN_TXPWR_PCS[] =
497 {
498 0, // unused.
499 0, // Power class = 1.
500 3, // Power class = 2.
501 30 // Power class = 3.
502 };
503 // #elif (STD == DCS1800)
504 const UWORD8 MIN_TXPWR_DCS[] =
505 {
506 0, // unused.
507 0, // Power class = 1.
508 3, // Power class = 2.
509 29 // Power class = 3.
510 };
511
512 const UWORD8 MIN_TXPWR_GSM850[] =
513 {
514 0, // unused.
515 0, // Power class = 1, unused for GSM900
516 2, // Power class = 2.
517 3, // Power class = 3.
518 5, // Power class = 4.
519 7 // Power class = 5.
520 };
521
522 // #elif (STD == DUAL)
523 // const UWORD8 MIN_TXPWR_GSM[] =
524 // {
525 // 0, // unused.
526 // 0, // Power class = 1, unused for GSM900
527 // 2, // Power class = 2.
528 // 3, // Power class = 3.
529 // 5, // Power class = 4.
530 // 7 // Power class = 5.
531 // };
532 // const UWORD8 MIN_TXPWR_DCS[] =
533 // {
534 // 0, // unused.
535 // 0, // Power class = 1.
536 // 3, // Power class = 2.
537 // 29 // Power class = 3.
538 // };
539 // #endif
540
541 const UWORD8 GAUG_VS_PAGING_RATE[] =
542 {
543 4, // bs_pa_mfrms = 2, 1 gauging every 4 Paging blocs
544 3, // bs_pa_mfrms = 3, 1 gauging every 3 Paging blocs
545 2, // bs_pa_mfrms = 4, 1 gauging every 2 Paging blocs
546 1, // bs_pa_mfrms = 5, 1 gauging every 1 Paging bloc
547 1, // bs_pa_mfrms = 6, 1 gauging every 1 Paging bloc
548 1, // bs_pa_mfrms = 7, 1 gauging every 1 Paging bloc
549 1, // bs_pa_mfrms = 8, 1 gauging every 1 Paging bloc
550 1 // bs_pa_mfrms = 9, 1 gauging every 1 Paging bloc
551 };
552
553 #else
554 extern T_IDLE_TASK_INFO IDLE_INFO_COMB[(MAX_AG_BLKS_RES_COMB+1) * (MAX_PG_BLOC_INDEX_COMB+1)];
555 extern T_IDLE_TASK_INFO IDLE_INFO_NCOMB[(MAX_AG_BLKS_RES_NCOMB+1) * (MAX_PG_BLOC_INDEX_NCOMB+1)];
556 extern UWORD8 NBPCH_IN_MF51_NCOMB[(MAX_AG_BLKS_RES_NCOMB+1)];
557 extern UWORD8 NBPCH_IN_MF51_COMB[(MAX_AG_BLKS_RES_COMB+1)];
558 extern UWORD8 DSC_INIT_VALUE[MAX_BS_PA_MFRMS-2];
559 extern T_SDCCH_DESC SDCCH_DESC_NCOMB[];
560 extern T_SDCCH_DESC SDCCH_DESC_COMB[];
561 extern UWORD8 RNTABLE[114];
562 extern UWORD8 COMBINED_RA_DISTRIB[51];
563 extern T_TASK_MFTAB TASK_ROM_MFTAB[NBR_DL_L1S_TASKS];
564 extern UWORD8 DSP_TASK_CODE[NBR_DL_L1S_TASKS];
565 extern UWORD8 REPORTING_PERIOD[];
566 extern UWORD8 TOA_PERIOD_LEN[];
567 extern UWORD8 MIN_TXPWR_GSM[];
568 extern UWORD8 MIN_TXPWR_DCS[];
569 extern UWORD8 MIN_TXPWR_PCS[];
570 extern UWORD8 MIN_TXPWR_GSM850[];
571 extern UWORD8 GAUG_VS_PAGING_RATE[];
572 #endif
573 #endif //L1_TABS_H