comparison src/cs/layer1/p_include/l1p_mfta.h @ 0:4e78acac3d88

src/{condat,cs,gpf,nucleus}: import from Selenite
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 16 Oct 2020 06:23:26 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:4e78acac3d88
1 /************* Revision Controle System Header *************
2 * GSM Layer 1 software
3 * L1P_MFTAB.H
4 *
5 * Filename l1p_mfta.h
6 * Copyright 2003 (C) Texas Instruments
7 *
8 ************* Revision Controle System Header *************/
9
10 #define L1P_MFTAB_H
11
12 // Prototypes
13 void l1s_hopping_algo (UWORD8 param1, UWORD8 param2);
14
15 void l1ps_ctrl_single (UWORD8 param1, UWORD8 param2);
16 void l1ps_read_single (UWORD8 param1, UWORD8 param2);
17
18 void l1ps_ctrl_snb_dl (UWORD8 param1, UWORD8 param2);
19 void l1ps_read_nb_dl (UWORD8 param1, UWORD8 param2);
20
21 void l1ps_ctrl_pdtch (UWORD8 param1, UWORD8 param2);
22 void l1ps_read_pdtch (UWORD8 param1, UWORD8 param2);
23
24 void l1ps_ctrl_pbcch (UWORD8 param1, UWORD8 param2);
25
26 void l1ps_ctrl_prach (UWORD8 param1, UWORD8 param2);
27 void l1ps_read_pra_result (UWORD8 param1, UWORD8 param2);
28
29 void l1ps_ctrl_poll (UWORD8 param1, UWORD8 param2);
30 void l1ps_read_poll_result(UWORD8 param1, UWORD8 param2);
31
32 void l1ps_ctrl_ptcch (UWORD8 param1, UWORD8 param2);
33 void l1ps_read_ptcch (UWORD8 param1, UWORD8 param2);
34
35 void l1ps_ctrl_itmeas (UWORD8 param1, UWORD8 param2);
36 void l1ps_read_itmeas (UWORD8 param1, UWORD8 param2);
37
38 /***********************************************************
39 * Content:
40 * This file contains the MultiFrame tables for all L1S
41 * Packet basic tasks.
42 ***********************************************************/
43
44 /*******************************************************************************************/
45 /* Multiframe Blocks for Dynamic MFTAB Building purpose. */
46 /*******************************************************************************************/
47 // Multiframe table size....
48 #define BLOC_PDTCH_SIZE 6 // PDTCH.
49 #define BLOC_PRACH_SIZE 3 // PRACH.
50 #define BLOC_POLL_SIZE 6 // POLL.
51 #define BLOC_POLL_NO_HOPP_SIZE 6 // POLL without hopping algo called.
52 #define BLOC_SINGLE_SIZE 6 // SINGLE.
53 #define BLOC_PCCCH_SIZE 6 // PNP, PEP and PALLC
54 #define BLOC_PBCCHS_SIZE 6 // Serving Cell PBCCH
55 #define BLOC_PTCCH_SIZE 3 // Serving Cell PTCCH
56 #define BLOC_ITMEAS_SIZE 4 // Interference measurements
57 #define BLOC_PBCCHN_TRAN_SIZE 6 // Neighbor Cell PBCCH in packet Transfer
58 #define BLOC_PBCCHN_IDLE_SIZE 8 // Neighbor Cell PBCCH in Idle
59
60
61 #ifdef L1P_ASYN_C
62 /*----------------------------------------------------*/
63 /* TASK: Packet Normal Paging... */
64 /*----------------------------------------------------*/
65 /* frame 1 2 3 4 5 6 */
66 /* | | | | | | */
67 /* C W R | | | -> hopping + burst 1 */
68 /* C W R | | -> hopping + burst 2 */
69 /* C W R | -> hopping + burst 3 */
70 /* C W R -> hopping + burst 4 */
71 /*----------------------------------------------------*/
72 const T_FCT BLOC_PNP[] =
73 {
74 {l1s_hopping_algo,PNP,NO_PAR},{l1ps_ctrl_snb_dl,PNP,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1
75 {l1s_hopping_algo,PNP,NO_PAR},{l1ps_ctrl_snb_dl,PNP,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2
76 {l1s_hopping_algo,PNP,NO_PAR},{l1ps_read_nb_dl,PNP,BURST_1},{l1ps_ctrl_snb_dl,PNP,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3
77 {l1s_hopping_algo,PNP,NO_PAR},{l1ps_read_nb_dl,PNP,BURST_2},{l1ps_ctrl_snb_dl,PNP,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
78 {l1ps_read_nb_dl,PNP,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5
79 {l1ps_read_nb_dl,PNP,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6
80 };
81
82 /*----------------------------------------------------*/
83 /* TASK: Packet Extended Paging... */
84 /*----------------------------------------------------*/
85 /* frame 1 2 3 4 5 6 */
86 /* | | | | | | */
87 /* C W R | | | ->hopping + burst 1 */
88 /* C W R | | ->hopping + burst 2 */
89 /* C W R | ->hopping + burst 3 */
90 /* C W R ->hopping + burst 4 */
91 /*----------------------------------------------------*/
92 const T_FCT BLOC_PEP[] =
93 {
94 {l1s_hopping_algo,PEP,NO_PAR},{l1ps_ctrl_snb_dl,PEP,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1
95 {l1s_hopping_algo,PEP,NO_PAR},{l1ps_ctrl_snb_dl,PEP,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2
96 {l1s_hopping_algo,PEP,NO_PAR},{l1ps_read_nb_dl,PEP,BURST_1},{l1ps_ctrl_snb_dl,PEP,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3
97 {l1s_hopping_algo,PEP,NO_PAR},{l1ps_read_nb_dl,PEP,BURST_2},{l1ps_ctrl_snb_dl,PEP,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
98 {l1ps_read_nb_dl,PEP,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5
99 {l1ps_read_nb_dl,PEP,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6
100 };
101
102 /*----------------------------------------------------*/
103 /* TASK: All PCCCH Reading ... */
104 /*----------------------------------------------------*/
105 /* frame 1 2 3 4 5 6 */
106 /* | | | | | | */
107 /* C W R | | | -> hopping + burst 1 */
108 /* C W R | | -> hopping + burst 2 */
109 /* C W R | -> hopping + burst 3 */
110 /* C W R -> hopping + burst 4 */
111 /*----------------------------------------------------*/
112 const T_FCT BLOC_PALLC[] =
113 {
114 {l1s_hopping_algo,PALLC,NO_PAR},{l1ps_ctrl_snb_dl,PALLC,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1
115 {l1s_hopping_algo,PALLC,NO_PAR},{l1ps_ctrl_snb_dl,PALLC,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2
116 {l1s_hopping_algo,PALLC,NO_PAR},{l1ps_read_nb_dl,PALLC,BURST_1},{l1ps_ctrl_snb_dl,PALLC,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3
117 {l1s_hopping_algo,PALLC,NO_PAR},{l1ps_read_nb_dl,PALLC,BURST_2},{l1ps_ctrl_snb_dl,PALLC,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
118 {l1ps_read_nb_dl,PALLC,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5
119 {l1ps_read_nb_dl,PALLC,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6
120 };
121
122 /*--------------------------------------------------------------*/
123 /* TASK: Serving Cell PBCCH task... */
124 /*--------------------------------------------------------------*/
125 /* frame 1 2 3 4 5 6 */
126 /* | | | | | | */
127 /* C W R | | | -> hopping + Synch + burst 1 */
128 /* C W R | | -> hopping + burst 2 */
129 /* C W R | -> hopping + burst 3 */
130 /* C W R -> hopping + burst 4 + Synch back */
131 /*--------------------------------------------------------------*/
132 const T_FCT BLOC_PBCCHS[] =
133 {
134 {l1s_hopping_algo,PBCCHS,NO_PAR},{l1ps_ctrl_pbcch,PBCCHS,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1
135 {l1s_hopping_algo,PBCCHS,NO_PAR},{l1ps_ctrl_pbcch,PBCCHS,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2
136 {l1s_hopping_algo,PBCCHS,NO_PAR},{l1ps_read_nb_dl,PBCCHS,BURST_1},{l1ps_ctrl_pbcch,PBCCHS,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3
137 {l1s_hopping_algo,PBCCHS,NO_PAR},{l1ps_read_nb_dl,PBCCHS,BURST_2},{l1ps_ctrl_pbcch,PBCCHS,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
138 {l1ps_read_nb_dl,PBCCHS,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5
139 {l1ps_read_nb_dl,PBCCHS,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6
140 };
141
142
143 /*--------------------------------------------------------------*/
144 /* TASK: Neighbor Cell PBCCH task in Packet Transfer mode... */
145 /*--------------------------------------------------------------*/
146 /* frame 1 2 3 4 5 6 */
147 /* | | | | | | */
148 /* C W R | | | -> hopping + Synch + burst 1 */
149 /* C W R | | -> hopping + burst 2 */
150 /* C W R | -> hopping + burst 3 */
151 /* C W R -> hopping + burst 4 + Synch back */
152 /*--------------------------------------------------------------*/
153 const T_FCT BLOC_PBCCHN_TRAN[] =
154 {
155 {l1s_hopping_algo,PBCCHN_TRAN,NO_PAR},{l1ps_ctrl_pbcch,PBCCHN_TRAN,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1
156 {l1s_hopping_algo,PBCCHN_TRAN,NO_PAR},{l1ps_ctrl_pbcch,PBCCHN_TRAN,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2
157 {l1s_hopping_algo,PBCCHN_TRAN,NO_PAR},{l1ps_read_nb_dl,PBCCHN_TRAN,BURST_1},{l1ps_ctrl_pbcch,PBCCHN_TRAN,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3
158 {l1s_hopping_algo,PBCCHN_TRAN,NO_PAR},{l1ps_read_nb_dl,PBCCHN_TRAN,BURST_2},{l1ps_ctrl_pbcch,PBCCHN_TRAN,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
159 {l1ps_read_nb_dl,PBCCHN_TRAN,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5
160 {l1ps_read_nb_dl,PBCCHN_TRAN,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6
161 };
162
163 /*--------------------------------------------------------------*/
164 /* TASK: Neighbor Cell PBCCH task in Idle mode... */
165 /*--------------------------------------------------------------*/
166 /* frame 1 2 3 4 5 6 7 8 */
167 /* | | | | | | | | */
168 /* C W R | | | | | -> AGC */
169 /* C W R | | | -> hopping + Synch + burst 1 */
170 /* C W R | | -> hopping + burst 2 */
171 /* C W R | -> hopping + burst 3 */
172 /* C W R -> hopping + burst 4 + Synch back */
173 /*--------------------------------------------------------------*/
174 const T_FCT BLOC_PBCCHN_IDLE[] =
175 {
176 {l1s_ctrl_msagc,PBCCHN_IDLE,NO_PAR},
177 {NULL,NO_PAR,NO_PAR}, // frame 1
178 {NULL,NO_PAR,NO_PAR}, // frame 2
179 {l1s_read_msagc,PBCCHN_IDLE,NO_PAR},{l1s_hopping_algo,PBCCHN_IDLE,NO_PAR},{l1ps_ctrl_pbcch,PBCCHN_IDLE,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 3
180 {l1s_hopping_algo,PBCCHN_IDLE,NO_PAR},{l1ps_ctrl_pbcch,PBCCHN_IDLE,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 4
181 {l1s_hopping_algo,PBCCHN_IDLE,NO_PAR},{l1ps_read_nb_dl,PBCCHN_IDLE,BURST_1},{l1ps_ctrl_pbcch,PBCCHN_IDLE,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5
182 {l1s_hopping_algo,PBCCHN_IDLE,NO_PAR},{l1ps_read_nb_dl,PBCCHN_IDLE,BURST_2},{l1ps_ctrl_pbcch,PBCCHN_IDLE,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 6
183 {l1ps_read_nb_dl,PBCCHN_IDLE,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 7
184 {l1ps_read_nb_dl,PBCCHN_IDLE,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 8
185 };
186
187 /*----------------------------------------------------*/
188 /* TASK: PDTCH */
189 /*----------------------------------------------------*/
190 /* frame 1 2 3 4 5 6 */
191 /* | | | | | | */
192 /* C W R | | | -> hopping + burst 1 */
193 /* C W R | | -> hopping + burst 2 */
194 /* C W R | -> hopping + burst 3 */
195 /* C W R -> hopping + burst 4 */
196 /*----------------------------------------------------*/
197 const T_FCT BLOC_PDTCH[] =
198 {
199 {l1s_hopping_algo,PDTCH,NO_PAR},{l1ps_ctrl_pdtch,PDTCH,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1
200 {l1s_hopping_algo,PDTCH,NO_PAR},{l1ps_ctrl_pdtch,PDTCH,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2
201 {l1s_hopping_algo,PDTCH,NO_PAR},{l1ps_read_pdtch,PDTCH,BURST_1},{l1ps_ctrl_pdtch,PDTCH,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3
202 {l1s_hopping_algo,PDTCH,NO_PAR},{l1ps_read_pdtch,PDTCH,BURST_2},{l1ps_ctrl_pdtch,PDTCH,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
203 {l1ps_read_pdtch,PDTCH,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5
204 {l1ps_read_pdtch,PDTCH,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6
205 };
206
207 /*--------------------------------------------------------*/
208 /* TASK: SINGLE */
209 /*--------------------------------------------------------*/
210 /* frame 1 2 3 4 5 6 */
211 /* | | | | | | */
212 /* C W R | | | -> hopping + burst 1 + Sync */
213 /* C W R | | -> hopping + burst 2 */
214 /* C W R | -> hopping + burst 3 */
215 /* C W R -> hopping + burst 4 + Sync back */
216 /*--------------------------------------------------------*/
217 const T_FCT BLOC_SINGLE[] =
218 {
219 {l1s_hopping_algo,SINGLE,NO_PAR},{l1ps_ctrl_single,SINGLE,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1
220 {l1s_hopping_algo,SINGLE,NO_PAR},{l1ps_ctrl_single,SINGLE,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2
221 {l1s_hopping_algo,SINGLE,NO_PAR},{l1ps_read_single,SINGLE,BURST_1},{l1ps_ctrl_single,SINGLE,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3
222 {l1s_hopping_algo,SINGLE,NO_PAR},{l1ps_read_single,SINGLE,BURST_2},{l1ps_ctrl_single,SINGLE,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
223 {l1ps_read_single,SINGLE,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5
224 {l1ps_read_single,SINGLE,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6
225 };
226 /*----------------------------------------------------*/
227 /* TASK: PRACH task... */
228 /*----------------------------------------------------*/
229 const T_FCT BLOC_PRACH[] =
230 {
231 {l1ps_ctrl_prach,PRACH,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1
232 {NULL,NO_PAR,NO_PAR}, // frame 2
233 {l1ps_read_pra_result,PRACH,NO_PAR}, {NULL,NO_PAR,NO_PAR} // frame 3
234 };
235
236 /*----------------------------------------------------*/
237 /* TASK: POLL task... */
238 /*----------------------------------------------------*/
239 /* frame 1 2 3 4 5 6 */
240 /* | | | | | | */
241 /* C W R | | | -> burst 1 */
242 /* C W R | | -> burst 2 */
243 /* C W R | -> burst 3 */
244 /* C W R -> burst 4 */
245 /*----------------------------------------------------*/
246 const T_FCT BLOC_POLL[] =
247 {
248 {l1s_hopping_algo,POLL,NO_PAR},{l1ps_ctrl_poll,POLL,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1
249 {l1s_hopping_algo,POLL,NO_PAR},{l1ps_ctrl_poll,POLL,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2
250 {l1s_hopping_algo,POLL,NO_PAR},{l1ps_read_poll_result,POLL,BURST_1},{l1ps_ctrl_poll,POLL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3
251 {l1s_hopping_algo,POLL,NO_PAR},{l1ps_read_poll_result,POLL,BURST_2},{l1ps_ctrl_poll,POLL,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
252 {l1ps_read_poll_result,POLL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5
253 {l1ps_read_poll_result,POLL,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6
254 };
255
256 /*----------------------------------------------------*/
257 /* TASK: POLL_NO_HOPP task... */
258 /*----------------------------------------------------*/
259 /* frame 1 2 3 4 5 6 */
260 /* | | | | | | */
261 /* C W R | | | -> burst 1 */
262 /* C W R | | -> burst 2 */
263 /* C W R | -> burst 3 */
264 /* C W R -> burst 4 */
265 /*----------------------------------------------------*/
266 const T_FCT BLOC_POLL_NO_HOPP[] =
267 {
268 {l1ps_ctrl_poll,POLL,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1
269 {l1ps_ctrl_poll,POLL,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2
270 {l1ps_read_poll_result,POLL,BURST_1},{l1ps_ctrl_poll,POLL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3
271 {l1ps_read_poll_result,POLL,BURST_2},{l1ps_ctrl_poll,POLL,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
272 {l1ps_read_poll_result,POLL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5
273 {l1ps_read_poll_result,POLL,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6
274 };
275
276
277 /*--------------------------------------------------------*/
278 /* TASK: PTCCH */
279 /*--------------------------------------------------------*/
280 /* frame 1 2 3 4 */
281 /* | | | | */
282 /* C W W R */
283 /*--------------------------------------------------------*/
284 const T_FCT BLOC_PTCCH[] =
285 {
286 {l1s_hopping_algo,PTCCH,NO_PAR},{l1ps_ctrl_ptcch,PTCCH,NO_PAR},{NULL,NO_PAR,NO_PAR}, // frame 1
287 {NULL,NO_PAR,NO_PAR}, // frame 2
288 {l1ps_read_ptcch,PTCCH,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 3
289 };
290
291 /*----------------------------------------------------*/
292 /* TASK: Interference measurements... */
293 /*----------------------------------------------------*/
294 /* frame 1 2 3 4 */
295 /* | | | | */
296 /* C W W R -> hopping + measurements */
297 /*----------------------------------------------------*/
298 const T_FCT BLOC_ITMEAS[] =
299 {
300 {l1s_hopping_algo,ITMEAS,NO_PAR},{l1ps_ctrl_itmeas,NO_PAR,NO_PAR},{NULL,NO_PAR,NO_PAR}, // frame 1
301 {NULL,NO_PAR,NO_PAR}, // frame 2
302 {NULL,NO_PAR,NO_PAR}, // frame 2
303 {l1ps_read_itmeas,NO_PAR,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 4
304 };
305
306
307 #else
308 extern T_FCT BLOC_PNP[];
309 extern T_FCT BLOC_PEP[];
310 extern T_FCT BLOC_PALLC[];
311 extern T_FCT BLOC_PBCCHS[];
312 extern T_FCT BLOC_PBCCHN_TRAN[];
313 extern T_FCT BLOC_PBCCHN_IDLE[];
314 extern T_FCT BLOC_PDTCH[];
315 extern T_FCT BLOC_SINGLE[];
316 extern T_FCT BLOC_PRACH[];
317 extern T_FCT BLOC_POLL[];
318 extern T_FCT BLOC_POLL_NO_HOPP[];
319 extern T_FCT BLOC_PTCCH[];
320 extern T_FCT BLOC_ITMEAS[];
321 #endif