comparison src/cs/layer1/include/l1_msgty.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 * 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;