FreeCalypso > hg > fc-magnetite
comparison src/cs/layer1/include/l1_msgty.h @ 0:945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
binary blobs and LCD demo files have been excluded,
all line endings are LF only
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 25 Sep 2016 22:50:11 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:945cf7f506b2 |
---|---|
1 /************* Revision Controle System Header ************* | |
2 * GSM Layer 1 software | |
3 * L1_MSGTY.H | |
4 * | |
5 * Filename l1_msgty.h | |
6 * Copyright 2003 (C) Texas Instruments | |
7 * | |
8 ************* Revision Controle System Header *************/ | |
9 | |
10 | |
11 | |
12 /* channels types */ | |
13 #define L2_CHANNEL_SACCH 1 | |
14 #define L2_CHANNEL_SDCCH 2 | |
15 #define L2_CHANNEL_FACCH_H 3 | |
16 #define L2_CHANNEL_FACCH_F 4 | |
17 #define L2_CHANNEL_CCCH 5 | |
18 #define L2_CHANNEL_NBCCH 6 | |
19 #define L2_CHANNEL_PCH 7 | |
20 #define L2_CHANNEL_EPCH 8 | |
21 #define L2_CHANNEL_CBCH 9 | |
22 #define L2_CHANNEL_EBCCH 10 | |
23 | |
24 /****************************************************************/ | |
25 /* Structure definition for L1S <-> DATA ADAPTOR data blocks */ | |
26 /* TCH/9.6 -> 30 bytes */ | |
27 /* TCH/4.8 -> 15 bytes */ | |
28 /* TCH/2.4 -> 9 bytes */ | |
29 /****************************************************************/ | |
30 typedef struct | |
31 { | |
32 UWORD8 A[30]; | |
33 } | |
34 T_DATA_FRAME; | |
35 | |
36 /****************************************************************/ | |
37 /* Structure definition for L1A <-> MMI messages */ | |
38 /****************************************************************/ | |
39 | |
40 typedef struct | |
41 { | |
42 UWORD8 tx_flag; | |
43 UWORD8 traffic_period; | |
44 UWORD8 idle_period; | |
45 } | |
46 T_MMI_ADC_REQ; | |
47 | |
48 /****************************************************************/ | |
49 /* Structure definition for L1S <-> L1A messages */ | |
50 /****************************************************************/ | |
51 typedef T_PH_DATA_IND T_L1_BCCH_INFO; | |
52 typedef T_PH_DATA_IND T_L1_CCCH_INFO; | |
53 | |
54 /****************************************************************/ | |
55 /* Structure definition for new L3 <-> L1 messages */ | |
56 /****************************************************************/ | |
57 | |
58 #if (OP_L1_STANDALONE == 1) | |
59 /* Message used for hardware dynamic configuration */ | |
60 typedef struct | |
61 { | |
62 UWORD8 num_of_clock_cfg; // Dynamic clock configuration index | |
63 } | |
64 T_TST_HW_CONFIG_REQ; | |
65 #endif // OP_L1_STANDALONE | |
66 | |
67 typedef struct | |
68 { | |
69 UWORD32 mf51_fn; | |
70 } | |
71 T_MPHC_START_CBCH_READING; | |
72 | |
73 typedef struct | |
74 { | |
75 T_RXLEV_MEAS A[8]; | |
76 UWORD8 nbr_of_carriers; | |
77 WORD8 s_rxlev; | |
78 UWORD8 ba_id; | |
79 } | |
80 T_MPHC_RXLEV_PERIODIC_IND; | |
81 | |
82 typedef struct | |
83 { | |
84 TC_CHAN_LIST chan_list; | |
85 UWORD8 num_of_chans; | |
86 UWORD8 ba_id; | |
87 UWORD8 next_radio_freq_measured; // index of first radio_freq to be measured | |
88 } | |
89 T_MPHC_RXLEV_PERIODIC_REQ; | |
90 | |
91 typedef struct | |
92 { | |
93 UWORD16 radio_freq; // carrier id. | |
94 } | |
95 T_MPHC_NCELL_FB_SB_READ; | |
96 | |
97 typedef struct | |
98 { | |
99 UWORD16 radio_freq; // carrier id. | |
100 } | |
101 T_MPHC_START_BCCH_READING; | |
102 | |
103 typedef struct | |
104 { | |
105 UWORD16 radio_freq; // carrier id. | |
106 UWORD32 fn_offset; // offset between fn of this NCELL and the SCELL fn. | |
107 UWORD32 time_alignmt; // time alignment. | |
108 UWORD8 bsic; // BSIC. | |
109 UWORD16 si_bit_map; // System Info. bit map. | |
110 } | |
111 T_MPHC_NCELL_BCCH_READ; | |
112 | |
113 typedef struct | |
114 { | |
115 UWORD32 fn; | |
116 UWORD8 channel_request; | |
117 } | |
118 T_MPHC_RA_CON; | |
119 | |
120 typedef struct | |
121 { | |
122 T_CHANNEL_DESCRIPTION channel_desc; | |
123 UWORD8 timing_advance; | |
124 T_MOBILE_ALLOCATION frequency_list; | |
125 T_STARTING_TIME starting_time; | |
126 T_MOBILE_ALLOCATION frequency_list_bef_sti; | |
127 UWORD8 maio_bef_sti; | |
128 BOOL dtx_allowed; | |
129 T_BCCH_LIST bcch_allocation; | |
130 UWORD8 ba_id; | |
131 BOOL pwrc; | |
132 } | |
133 T_MPHC_IMMED_ASSIGN_REQ; | |
134 | |
135 typedef struct | |
136 { | |
137 T_CHANNEL_DESCRIPTION channel_desc_1; | |
138 UWORD8 channel_mode_1; | |
139 UWORD8 txpwr; | |
140 T_MOBILE_ALLOCATION frequency_list; | |
141 T_STARTING_TIME starting_time; | |
142 T_CHANNEL_DESCRIPTION channel_desc_2; | |
143 UWORD8 channel_mode_2; | |
144 T_MOBILE_ALLOCATION frequency_list_bef_sti; | |
145 T_CHANNEL_DESCRIPTION channel_desc_1_bef_sti; | |
146 T_CHANNEL_DESCRIPTION channel_desc_2_bef_sti; | |
147 UWORD8 cipher_mode; | |
148 UWORD8 a5_algorithm; | |
149 T_ENCRYPTION_KEY cipher_key; | |
150 BOOL dtx_allowed; | |
151 #if (AMR == 1) | |
152 T_AMR_CONFIGURATION amr_configuration; | |
153 #endif | |
154 } | |
155 T_MPHC_CHANNEL_ASSIGN_REQ; | |
156 | |
157 | |
158 typedef struct | |
159 { | |
160 UWORD8 txpwr; | |
161 UWORD8 rand; | |
162 UWORD8 channel_request; | |
163 UWORD8 powerclass_band1; | |
164 UWORD8 powerclass_band2; | |
165 | |
166 } | |
167 T_MPHC_RA_REQ; | |
168 | |
169 | |
170 typedef struct | |
171 { | |
172 T_HO_PARAMS handover_command; | |
173 UWORD32 fn_offset; | |
174 UWORD32 time_alignmt; | |
175 T_ENCRYPTION_KEY cipher_key; | |
176 #if (AMR == 1) | |
177 T_AMR_CONFIGURATION amr_configuration; | |
178 #endif | |
179 } | |
180 T_MPHC_ASYNC_HO_REQ; | |
181 | |
182 typedef struct | |
183 { | |
184 T_HO_PARAMS handover_command; | |
185 UWORD32 fn_offset; | |
186 UWORD32 time_alignmt; | |
187 T_ENCRYPTION_KEY cipher_key; | |
188 BOOL nci; | |
189 BOOL timing_advance_valid; | |
190 UWORD8 timing_advance; | |
191 #if (AMR == 1) | |
192 T_AMR_CONFIGURATION amr_configuration; | |
193 #endif | |
194 } | |
195 T_MPHC_PRE_SYNC_HO_REQ; | |
196 | |
197 typedef struct | |
198 { | |
199 T_HO_PARAMS handover_command; | |
200 UWORD32 fn_offset; | |
201 UWORD32 time_alignmt; | |
202 T_ENCRYPTION_KEY cipher_key; | |
203 BOOL nci; | |
204 UWORD8 real_time_difference; | |
205 } | |
206 T_MPHC_PSEUDO_SYNC_HO_REQ; | |
207 | |
208 typedef struct | |
209 { | |
210 T_HO_PARAMS handover_command; | |
211 UWORD32 fn_offset; | |
212 UWORD32 time_alignmt; | |
213 T_ENCRYPTION_KEY cipher_key; | |
214 BOOL nci; | |
215 #if (AMR == 1) | |
216 T_AMR_CONFIGURATION amr_configuration; | |
217 #endif | |
218 } | |
219 T_MPHC_SYNC_HO_REQ; | |
220 | |
221 typedef struct | |
222 { | |
223 UWORD8 cause; | |
224 } | |
225 T_MPHC_HANDOVER_FINISHED; | |
226 | |
227 typedef struct | |
228 { | |
229 BOOL dtx_used; | |
230 BOOL meas_valid; | |
231 WORD16 rxlev_full_acc; | |
232 UWORD8 rxlev_full_nbr_meas; | |
233 WORD16 rxlev_sub_acc; | |
234 UWORD8 rxlev_sub_nbr_meas; | |
235 UWORD16 rxqual_full_acc_errors; | |
236 UWORD16 rxqual_full_nbr_bits; | |
237 UWORD16 rxqual_sub_acc_errors; | |
238 UWORD16 rxqual_sub_nbr_bits; | |
239 UWORD8 no_of_ncell_meas; | |
240 T5_NCELL_MEAS ncell_meas; | |
241 UWORD8 ba_id; | |
242 UWORD8 timing_advance; | |
243 UWORD8 txpwr_used; | |
244 | |
245 // RESERVED: for trace/debug only | |
246 UWORD8 facch_dl_count; | |
247 UWORD8 facch_ul_count; | |
248 } | |
249 T_MPHC_MEAS_REPORT; | |
250 | |
251 typedef T_NEW_BA_LIST T_MPHC_UPDATE_BA_LIST; | |
252 | |
253 | |
254 typedef struct | |
255 { | |
256 UWORD8 bs_pa_mfrms; | |
257 UWORD8 bs_ag_blks_res; | |
258 BOOL bcch_combined; | |
259 UWORD8 ccch_group; | |
260 UWORD8 page_group; | |
261 UWORD8 page_block_index; | |
262 UWORD8 page_mode; | |
263 } | |
264 T_MPHC_START_CCCH_REQ; | |
265 | |
266 typedef struct | |
267 { | |
268 UWORD8 sb_flag; //TRUE if SB found and belongs to PLMN, otherwise FALSE | |
269 UWORD16 radio_freq; // carrier id. | |
270 UWORD8 bsic; // BSIC. | |
271 UWORD32 fn_offset; // offset between fn of this NCELL and the SCELL fn. | |
272 UWORD32 time_alignmt; // time alignment. | |
273 } | |
274 T_MPHC_NCELL_SB_READ; | |
275 | |
276 typedef T_FULL_LIST_MEAS T_MPHC_RXLEV_REQ; | |
277 typedef T_FULL_LIST_MEAS T_L1C_VALID_MEAS_INFO; | |
278 typedef T_MPHC_RXLEV_PERIODIC_IND T_L1C_RXLEV_PERIODIC_DONE; | |
279 | |
280 | |
281 | |
282 typedef struct | |
283 { | |
284 UWORD8 radio_band_config; // frequency band configuration: E-GSM, DCS, GSM/DCS, PCS | |
285 } | |
286 T_MPHC_INIT_L1_REQ; | |
287 | |
288 /****************************************************************/ | |
289 /* Structure definition for Test <-> L1A messages */ | |
290 /****************************************************************/ | |
291 | |
292 typedef struct | |
293 { | |
294 UWORD16 dsp_code_version; | |
295 UWORD16 dsp_checksum; | |
296 UWORD16 dsp_patch_version; | |
297 UWORD16 mcu_tcs_program_release; | |
298 UWORD16 mcu_tcs_official; | |
299 UWORD16 mcu_tcs_internal; | |
300 } | |
301 T_TST_TEST_HW_CON; | |
302 | |
303 typedef struct | |
304 { | |
305 UWORD8 type; | |
306 } | |
307 T_L1_STATS_REQ; | |
308 | |
309 //////////////////// | |
310 // Trace messages // | |
311 //////////////////// | |
312 | |
313 #if ((TRACE_TYPE == 1) || (TRACE_TYPE == 4) || (TRACE_TYPE == 7)) | |
314 | |
315 #if (DSP_DEBUG_TRACE_ENABLE == 1) | |
316 // DSP DEBUG buffer display | |
317 typedef struct | |
318 { | |
319 UWORD16 size; | |
320 UWORD32 fn; | |
321 UWORD16 debug_time; | |
322 UWORD16 patch_version; | |
323 UWORD16 trace_level; | |
324 API buffer[2]; // ANOTHER DEFINITION ??? | |
325 } | |
326 T_DSP_DEBUG_INFO; | |
327 | |
328 // DSP AMR trace | |
329 typedef struct | |
330 { | |
331 UWORD16 size; | |
332 UWORD32 fn; | |
333 API buffer[2]; // ANOTHER DEFINITION ??? | |
334 } | |
335 T_DSP_AMR_DEBUG_INFO; | |
336 | |
337 #endif | |
338 | |
339 typedef struct | |
340 { | |
341 UWORD32 trace_config; | |
342 UWORD32 rtt_cell_enable[8]; | |
343 UWORD32 rtt_event; | |
344 } | |
345 T_TRACE_CONFIG_CHANGE; | |
346 | |
347 #if (L1_GPRS) | |
348 // Packet transfer trace | |
349 typedef struct | |
350 { | |
351 UWORD32 fn; | |
352 UWORD8 rx_allocation; | |
353 UWORD8 tx_allocation; | |
354 BOOL blk_status; | |
355 UWORD8 dl_cs_type; | |
356 UWORD8 dl_status[4]; | |
357 UWORD8 ul_status[8]; | |
358 } | |
359 T_CONDENSED_PDTCH_INFO; | |
360 #endif | |
361 | |
362 typedef struct | |
363 { | |
364 UWORD8 debug_code; | |
365 UWORD32 fn; | |
366 UWORD32 tab[7]; | |
367 } | |
368 T_QUICK_TRACE; | |
369 | |
370 #endif | |
371 | |
372 #if ((TRACE_TYPE == 1) || (TRACE_TYPE == 4) || (TRACE_TYPE == 7)) | |
373 typedef struct | |
374 { | |
375 UWORD8 debug_code; | |
376 UWORD32 tab[8]; | |
377 } | |
378 T_TRACE_INFO; | |
379 #endif | |
380 | |
381 #if (TRACE_TYPE==7) // CPU LOAD | |
382 | |
383 // Number of measurements before output to UART | |
384 | |
385 #define C_MESURE_DEPTH 13 | |
386 | |
387 /* | |
388 * cpu : hisr cpu load in microseconds | |
389 * cpu_access : lisr -> hisr begining cpu load in microseconds | |
390 * fn : Frame number modulo 104 | |
391 */ | |
392 | |
393 typedef struct | |
394 { | |
395 UWORD16 cpu; | |
396 UWORD16 cpu_access; | |
397 UWORD8 fn; | |
398 BOOL valid; | |
399 } | |
400 T_MESURE; | |
401 | |
402 typedef struct | |
403 { | |
404 UWORD8 debug_code; | |
405 T_MESURE tab[C_MESURE_DEPTH]; | |
406 } | |
407 T_TRACE_INFO_CPU_LOAD; | |
408 | |
409 #endif | |
410 | |
411 | |
412 /****************************************************************/ | |
413 /* Structure definition for POWER MANAGEMENt. */ | |
414 /****************************************************************/ | |
415 typedef struct | |
416 { | |
417 UWORD8 sleep_mode; | |
418 UWORD16 clocks; | |
419 } | |
420 T_TST_SLEEP_REQ; | |
421 | |
422 // ...................NEW FOR ALR.................... | |
423 typedef struct | |
424 { | |
425 UWORD8 schedule_array_size; | |
426 T_BCCHS_SCHEDULE schedule_array[10]; | |
427 } | |
428 T_MPHC_SCELL_NBCCH_REQ; | |
429 | |
430 typedef struct | |
431 { | |
432 UWORD8 schedule_array_size; | |
433 T_BCCHS_SCHEDULE schedule_array[10]; | |
434 } | |
435 T_MPHC_SCELL_EBCCH_REQ; | |
436 | |
437 typedef struct | |
438 { | |
439 UWORD16 radio_freq; | |
440 UWORD32 fn_offset; | |
441 UWORD32 time_alignmt; | |
442 UWORD8 tsc; | |
443 UWORD16 bcch_blks_req; | |
444 #if L1_GPRS | |
445 UWORD8 gprs_priority; | |
446 #endif | |
447 } | |
448 T_MPHC_NCELL_BCCH_REQ; | |
449 | |
450 typedef struct | |
451 { | |
452 UWORD16 radio_freq; | |
453 UWORD8 l2_channel; | |
454 BOOL error_flag; | |
455 T_RADIO_FRAME l2_frame; | |
456 UWORD8 tc; | |
457 WORD8 ccch_lev; | |
458 UWORD32 fn; | |
459 | |
460 // L1S -> L1A data only | |
461 UWORD8 neigh_id; | |
462 } | |
463 T_MPHC_DATA_IND; | |
464 | |
465 typedef T_MPHC_DATA_IND T_MPHC_NCELL_BCCH_IND; | |
466 typedef T_MPHC_DATA_IND T_L1C_BCCHS_INFO; | |
467 typedef T_MPHC_DATA_IND T_L1C_BCCHN_INFO; | |
468 | |
469 typedef struct | |
470 { | |
471 UWORD16 radio_freq; | |
472 UWORD32 fn_offset; | |
473 UWORD32 time_alignmt; | |
474 UWORD8 timing_validity; | |
475 UWORD8 search_mode; | |
476 } | |
477 T_MPHC_NETWORK_SYNC_REQ; | |
478 | |
479 typedef struct | |
480 { | |
481 UWORD16 radio_freq; | |
482 BOOL sb_flag; | |
483 UWORD32 fn_offset; | |
484 UWORD32 time_alignmt; | |
485 UWORD8 bsic; | |
486 } | |
487 T_MPHC_NETWORK_SYNC_IND; | |
488 | |
489 typedef struct | |
490 { | |
491 UWORD16 radio_freq; | |
492 UWORD32 fn_offset; | |
493 UWORD32 time_alignmt; | |
494 UWORD8 timing_validity; | |
495 } | |
496 T_MPHC_NCELL_SYNC_REQ; | |
497 | |
498 #if (L1_12NEIGH ==1) | |
499 typedef struct | |
500 { | |
501 UWORD8 eotd; | |
502 UWORD8 list_size; | |
503 T_MPHC_NCELL_SYNC_REQ ncell_list[NBR_NEIGHBOURS]; | |
504 } | |
505 T_MPHC_NCELL_LIST_SYNC_REQ; | |
506 #endif | |
507 | |
508 | |
509 | |
510 typedef struct | |
511 { | |
512 UWORD16 radio_freq; | |
513 BOOL sb_flag; // used to fill "data_valid" field for Cursor | |
514 UWORD32 fn_offset; | |
515 UWORD32 time_alignmt; | |
516 UWORD8 bsic; | |
517 | |
518 // L1S -> L1A data only | |
519 UWORD8 neigh_id; | |
520 UWORD8 attempt; | |
521 | |
522 // RESERVED: for trace/debug and test mode only | |
523 UWORD32 pm; | |
524 UWORD32 toa; | |
525 UWORD32 angle; | |
526 UWORD32 snr; | |
527 | |
528 // EOTD data : L1S -> L1A | |
529 #if (L1_EOTD==1) | |
530 UWORD8 eotd_data_valid; // indicates to L3 that it's an EOTD result | |
531 UWORD8 mode; // indicates to CURSOR that it's Idle(0) or Dedicated (1) | |
532 WORD16 d_eotd_first; | |
533 WORD16 d_eotd_max; | |
534 UWORD32 d_eotd_nrj; | |
535 WORD16 a_eotd_crosscor[18]; | |
536 UWORD32 timetag; | |
537 UWORD32 fn_sb_neigh; // used for Timetag computation | |
538 UWORD32 fn_in_SB; // sent to CURSOR for SC fn (header=46 ...) | |
539 | |
540 // TOA correction for timetag in dedicated mode... | |
541 WORD32 toa_correction; | |
542 | |
543 // for Debug traces ............ | |
544 UWORD32 delta_fn; | |
545 WORD32 delta_qbit; | |
546 #endif | |
547 } | |
548 T_MPHC_NCELL_SYNC_IND; | |
549 | |
550 typedef T_MPHC_NCELL_SYNC_IND T_L1C_SB_INFO; | |
551 typedef T_MPHC_NCELL_SYNC_IND T_L1C_SBCONF_INFO; | |
552 | |
553 typedef struct | |
554 { | |
555 UWORD16 radio_freq; | |
556 UWORD32 fn_offset; | |
557 UWORD32 time_alignmt; | |
558 UWORD8 bsic; | |
559 } | |
560 T_MPHC_NEW_SCELL_REQ; | |
561 | |
562 typedef struct | |
563 { | |
564 BOOL fb_flag; | |
565 WORD8 ntdma; | |
566 UWORD8 neigh_id; | |
567 #if (L1_12NEIGH ==1) | |
568 // L1S --> L1A data only | |
569 UWORD8 attempt; | |
570 #endif | |
571 // RESERVED: for Trace/Debug and test mode only | |
572 UWORD32 pm; | |
573 UWORD32 toa; | |
574 UWORD32 angle; | |
575 UWORD32 snr; | |
576 UWORD16 radio_freq; | |
577 } | |
578 T_L1C_FB_INFO; | |
579 | |
580 typedef struct | |
581 { | |
582 WORD8 radio_freq_array_size; | |
583 #if (L1_12NEIGH ==1) | |
584 UWORD16 radio_freq_array[NBR_NEIGHBOURS]; | |
585 #else | |
586 UWORD16 radio_freq_array[6]; | |
587 #endif | |
588 } | |
589 T_MPHC_STOP_NCELL_SYNC_REQ; | |
590 | |
591 typedef struct | |
592 { | |
593 UWORD8 radio_freq_array_size; | |
594 UWORD16 radio_freq_array[6]; | |
595 } | |
596 T_MPHC_STOP_NCELL_BCCH_REQ; | |
597 | |
598 typedef struct | |
599 { | |
600 T_CHANNEL_DESCRIPTION cbch_desc; | |
601 T_MOBILE_ALLOCATION cbch_freq_list; | |
602 } | |
603 T_MPHC_CONFIG_CBCH_REQ; | |
604 | |
605 typedef struct | |
606 { | |
607 BOOL extended_cbch; | |
608 UWORD8 schedule_length; | |
609 UWORD32 first_block_0; | |
610 UWORD16 first_block_1; | |
611 } | |
612 T_MPHC_CBCH_SCHEDULE_REQ; | |
613 | |
614 typedef struct | |
615 { | |
616 UWORD8 tb_bitmap; | |
617 } | |
618 T_MPHC_CBCH_INFO_REQ; | |
619 | |
620 typedef struct | |
621 { | |
622 BOOL extended_cbch; | |
623 UWORD32 first_block_0; | |
624 UWORD16 first_block_1; | |
625 } | |
626 T_MPHC_CBCH_UPDATE_REQ; | |
627 | |
628 typedef struct | |
629 { | |
630 BOOL normal_cbch; | |
631 BOOL extended_cbch; | |
632 } | |
633 T_MPHC_STOP_CBCH_REQ; | |
634 | |
635 // ...................NEW FOR ALR.................... | |
636 | |
637 /****************************************************************/ | |
638 /* Structure definition for L1 configuration. */ | |
639 /****************************************************************/ | |
640 typedef struct | |
641 { | |
642 UWORD8 std; | |
643 UWORD8 swap_iq_band1; | |
644 UWORD8 swap_iq_band2; | |
645 UWORD8 pwr_mngt; | |
646 UWORD8 tx_pwr_code; | |
647 UWORD16 dwnld; | |
648 UWORD8 pwr_mngt_mode_authorized; | |
649 UWORD32 pwr_mngt_clocks; | |
650 } | |
651 T_MMI_L1_CONFIG; |