comparison gsm-fw/L1/include/l1_tabs.h @ 530:25a7fe25864c

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