blob: fc495e8325f9a9ade4cc150bebb63eeb34d1752b [file] [log] [blame]
yu.dongc33b3072024-08-21 23:14:49 -07001/*****************************************************************************
2* Copyright Statement:
3* --------------------
4* This software is protected by Copyright and the information contained
5* herein is confidential. The software may not be copied and the information
6* contained herein may not be used or disclosed except with the written
7* permission of MediaTek Inc. (C) 2009
8*
9* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
10* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
11* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
12* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
13* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
14* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
15* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
16* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
17* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
18* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
19* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
20* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
21*
22* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
23* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
24* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
25* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
26* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
27*
28* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
29* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
30* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
31* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
32* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
33*
34*****************************************************************************/
35
36/******************************************************************************
37 * Filename:
38 * --------------------------------------------------------
39 * tl1_def.h
40 *
41 * Project:
42 * --------------------------------------------------------
43 *
44 *
45 * Description:
46 * --------------------------------------------------------
47 *
48 *
49 * Author:
50 * --------------------------------------------------------
51 * -------
52 *
53 * --------------------------------------------------------
54 * $Log$
55 *
56 * 11 14 2019 chason.cheng
57 * [MOLY00456996] TAS ÐèÒªÔö¼ÓSNÊýÁ¿
58 *
59 * .tds increase ant state and sar ant num
60 *
61 * 11 07 2019 chason.cheng
62 * [MOLY00456996] TAS ÐèÒªÔö¼ÓSNÊýÁ¿
63 *
64 * .roll back to 9720865
65 *
66 * 09 18 2019 chason.cheng
67 * [MOLY00425909] [GEN97][VMOLY][DAT]TDS DAT part develop
68 *
69 * .GEN97 SAR LID description
70 *
71 * 09 11 2019 chason.cheng
72 * [MOLY00400428] [GEN97][TAS][ANT] TDS UTAS
73 *
74 * .GEN97 merge SAR from oppo
75 *
76 * 08 26 2019 chason.cheng
77 * [MOLY00400428] [GEN97][TAS][ANT] TDS UTAS
78 *
79 * .merge SAR & SWTP
80 *
81 * 08 21 2019 chason.cheng
82 * [MOLY00400428] [GEN97][TAS][ANT] TDS UTAS
83 *
84 * .pertus tas mipi A D die data issue
85 *
86 * 07 29 2019 chason.cheng
87 * [MOLY00425909] [GEN97][VMOLY][DAT]TDS DAT part develop
88 *
89 * .TDS DAT
90 *
91 * 04 19 2019 chason.cheng
92 * [MOLY00400428] [GEN97][TAS][ANT] TDS UTAS.
93 *
94 * 10 31 2018 xiaochi.zhang
95 * [MOLY00361478] [Gen97] Gemini Compile Option Clean Up
96 *
97 * .
98 *
99 * 10 30 2018 chason.cheng
100 * [MOLY00325833] TDSCDMA GEN97 UNIFY TAS
101 *
102 * 08 27 2018 chason.cheng
103 * [MOLY00325833] TDSCDMA GEN95 UNIFY TAS.TDS fix build error
104 *
105 * 08 22 2018 ting.xu
106 * [MOLY00300045] [TDS][TRINITY POC] Trinity L MT6185M POC porting update debug
107 *
108 * ALIGN UMOLYE.
109 *
110 * 07 20 2018 chason.cheng
111 * [MOLY00325833] TDSCDMA GEN95 UNIFY TAS.TDD UTAS SAR
112 *
113 * 06 20 2018 chason.cheng
114 * [MOLY00325833] TDSCDMA GEN95 UNIFY TAS.GEN 95 DAT
115 *
116 * 06 08 2018 yanhai.xuan
117 * [MOLY00261463] [Coverity defect fix][TDSCDMA]TL1D coverity defect fix
118 * fix xl1sim build error
119 *
120 * 06 08 2018 chason.cheng
121 * [MOLY00325833] TDSCDMA GEN95 UNIFY TAS. UTAS UPDATE
122 *
123 * 05 23 2018 cruze.yu
124 * [MOLY00285698] [93/95 re-arch][TL1] tl1 option clean
125 *
126 * .
127 *
128 * 01 14 2016 yanhai.xuan
129 * [MOLY00159734] TX power detector support on Jade
130 * .
131 *
132 * 04 17 2015 marco.zhang
133 * [MOLY00096053] [TDD] Rx report for test (need turn on __TDS_RX_TEST_SUPPORT__)
134 * .
135 *
136 * 04 16 2015 chuansheng.zhang
137 * [MOLY00097620] [TK6291][UBin] TL1 Platform Patch
138 * TL1: Ubin Phase2 code merge.
139 *
140 * 01 07 2015 marco.zhang
141 * [MOLY00086950] UMOLY TL1 MAINTAIN
142 * .
143 *
144 * 01 05 2015 fanzhi.meng
145 * [MOLY00086950] UMOLY TL1 MAINTAIN
146 * .
147 *
148 * 12 21 2014 marco.zhang
149 * [MOLY00086950] UMOLY TL1 MAINTAIN
150 * prefix.
151 *
152 * 12 10 2014 rong.yang
153 * [MOLY00087194] [3G UMAC] merge 6291 code from MOLY.U3G.90IT.DEV
154 * .
155 *
156 * 05 23 2014 xiaoyun.mao
157 * [MOLY00066499] [3G TDD UMAC & L1] DPA & R4 rx memory revise
158 * .rx data path change
159 *
160 * 03 06 2014 xiaoyun.mao
161 * [MOLY00058570] [MT6290E2][SGLTE][82LTEv2][LT+G][GCF][ETC7310][MM][Band 38][Band A][case 8.4.2.2] fail,ÖÕ¶Ë·¢ËÍÁËcell updateµ¼ÖÂÓÃÀýʧ°Ü
162 * .DMO optimization: ul tick tell mac DMO info
163 *
164 * 09 26 2013 xiaoyun.mao
165 * [MOLY00036017] [MOLY NOT NEED]GEMINI rxtx protect ÓÅ»¯
166 * .SRB information
167 *
168 * 05 23 2013 xiaoyun.mao
169 * [MOLY00023509] suspend and dm optimization get out of gemini
170 * .
171 *
172 * 05 16 2013 xiaoyun.mao
173 * [MOLY00016548] [MT6290 PO admit][MT6290E1][FirstCall][3G TDD]merge code to Trunk and Development branch
174 * .add bit14 & bch sib7 modify & fix macro redefinition problem
175 *
176 * 04 26 2013 fanzhi.meng
177 * [MOLY00019723] [MT6290 Bring-up]_SCIF MCU/DSP CODE CHECK IN
178 * .WR8 SYNC TO MOLY
179 *
180 * 04 26 2013 xiaoyun.mao
181 * [MOLY00020915] Check in Autonomous gap code
182 * .
183 *
184 * 04 09 2013 ast00029
185 * [MOLY00013377] [TDD128][ESL][MOLY]check-in ESL code.
186 * for ESL
187 *
188 * 04 01 2013 shouzhu.zhang
189 * [MOLY00013249] MM TL1 Code check in
190 * [TL1] Merge lastes WR8 + R9 + MM code to MOLY..
191 *
192 * 03 01 2013 shun.liu
193 * [MOLY00011182] MT6572/6582: RF TX test feature check in MOLY main
194 * EM tx test tl1 part.
195 *
196 * 10 25 2012 ast00029
197 * [MOLY00005252] AST3001µÄTDµÄʧͬ²½fail£¬³öÏÖµôÍø
198 * make c,r ast_l1_ast3001
199 *
200 * for MOLY00005252, don't dl init sync when UPCC and LBM2
201 *
202 * 10 11 2012 shouzhu.zhang
203 * [MOLY00004672] [new feature check in] TDD128 PS Tput optimization about DM gap
204 * .
205 *
206 * 10 10 2012 shouzhu.zhang
207 * [MOLY00004672] [new feature check in] TDD128 PS Tput optimization about DM gap
208 * .
209 *
210 * 10 10 2012 shouzhu.zhang
211 * [MOLY00004672] [new feature check in] TDD128 PS Tput optimization about DM gap
212 * .
213 *
214 * 09 24 2012 xiaoyun.mao
215 * [MOLY00004069] [MOLY]TDD_R9_DEV Patch back to MOLY
216 * TDD_R9_DEV patch back to MOLY
217 *
218 * 05 03 2012 wcpuser_integrator
219 * removed!
220 * .
221 *
222 * 05 03 2012 wcpuser_integrator
223 * removed!
224 * .
225 *
226 * 03 26 2012 shuyang.yin
227 * removed!
228 * .
229 *
230 * 03 21 2012 shuyang.yin
231 * removed!
232 * .
233 *
234 * 03 02 2012 shuyang.yin
235 * removed!
236 * .
237 * (TL1 SAP)
238 *
239 * 02 15 2012 shuyang.yin
240 * removed!
241 * .
242 *
243 * 01 13 2012 shuyang.yin
244 * removed!
245 * .
246 *
247 * 11 14 2011 shi.dong
248 * removed!
249 * TL1 code interface fta merge in MAUI.
250 *
251 * 10 11 2011 shuyang.yin
252 * removed!
253 * .
254 * add compile option to seperate different hardware
255 *
256 * 04 20 2011 xinqiu.wang
257 * removed!
258 * Modify some description.
259 *
260 * 04 19 2011 xinqiu.wang
261 * removed!
262 * merge code from daily LOAD to MAUI 10A.
263 *
264 * 01 18 2011 xinqiu.wang
265 * removed!
266 * Add RHR feature to tl1 interface files.
267 *
268 * 12 14 2010 xinqiu.wang
269 * removed!
270 * Modify the struct of phy_post_tx_ind.
271 *
272 * 12 01 2010 popcafa.shih
273 * removed!
274 * .
275 *
276 * 11 29 2010 xinqiu.wang
277 * removed!
278 * Modify the description of umts_power_class.
279 *
280 * 11 04 2010 xinqiu.wang
281 * removed!
282 * 1. Add ul_mac_event to cphy_dch_setup/modify/release_req
283 * 2. Add two ticks and structs for mac-tl1 interface.
284 * 3. Add two simulation structs according to MAC's requeset.
285 *
286 * 11 03 2010 xinqiu.wang
287 * removed!
288 * 1.SLCE-TL1 SAP Modify for R7
289 * 2. MAC-TL1 SAP Modify for UPA
290 *
291 * 08 24 2010 popcafa.shih
292 * removed!
293 * .
294 *
295 * removed!
296 * removed!
297 * 1.In etfc_eval_info_ind_T, modify the description of retx_pdu_timeslots_used[] and retx_pdu_etfci[], to replace MAC-d to MAC-e.
298 * 2.Modify the BLER_INVALID to -64 in related description.
299 *
300 * removed!
301 * removed!
302 * 1.Modify comments of mac_harq_event in etfc_eval_info_req_T.
303 * 2.Modify comments of is_new_tx_required in edch_data_req_T.
304 * 3.Modify the comments of tx_power in tx_power_info_T.
305 *
306 * removed!
307 * removed!
308 * 1.Add pccpch_tx_power in cell_info_list_T
309 * 2.Replace repeat_offset with act_time and subframe_num in edch_non_sched_grant_info_T
310 * 3.Modify the comments of mac_event in etfc_eval_info_req_T, which is to change the meaning of bit1 from release to modify.
311 * 4.Modify the comments to add range of ts_num in eagch_config_T, num_prach_definition in erucch_info_T,num_ref_qpsk & num_ref_16qam& ref_code_rate_qpsk& ref_beta_qpsk&ref_code_rate_16qam&ref_beta_16qam in edch_etfcs_T
312 * 5.Modify comments of sync_ul_bitmap in sync_ul_erucch_info_T
313 * 6.Modify range of bler_target in eagch_info_T
314 * 7.Modify comments of ss_tpc_symbols in phy_signaling_info_T, retx_pdu_etfci[] in etfc_eval_info_ind_T
315 * 8.Add uppch_shift, max_tx_power, umts_power_class in sync_ul_erucch_info_T.
316 *
317 * removed!
318 * removed!
319 *
320 *
321 * removed!
322 * removed!
323 * 1.Delete type definition of meas_control_E
324 * 2.Modify range of iscp_timeslot_bitmap from 2~6 to 0~6 in comments
325 * 3.Add HSUPA related type definition.
326 *
327 * removed!
328 * removed!
329 * 1.Delete pre-declare check of __UMTS_TDD128_MODE__
330 * 2.Add AI_PARAMERROR_NO_UPPCH_SUBCHANNEL, AI_PARAMERROR_NO_RACH_DATA and AI_PARAMERROR_NO_RACH_CFG in access_status_E
331 *
332 * removed!
333 * removed!
334 * 1.Add comments of BCH_PRIOMEDIUM in bch_priority_T
335 * 2.Modify UL1_RAT_FLIGHT/UMTS/GSM to TL1_RAT_FLIGHT/UMTS/GSM
336 * 3.Use TL1 to replace UL1 and L1 in comments
337 * 4.In ss_tpc_len_E, modify SS_TPC_X_SYMBOLS(X=2,4,8,16) to SS_TPC_16_DIVIDE_SF_SYMBOLS
338 * 5.Modify type phy_sigaling_info_T to phy_signaling_info_T and modify phy_signalling to phy_signaling
339 * 6.Modify comments of ccode in hssich_info_T, comments of ts_num in hsscch_config_T and comments of is_valid_data in hsdsch_data_T
340 * 7.add pre-declare check of __UMTS_TDD128_MODE__
341 *
342 * removed!
343 * removed!
344 *
345 *
346 * removed!
347 * removed!
348 *
349 *
350 * removed!
351 * removed!
352 *
353 *
354 * removed!
355 * removed!
356 * Add description of threshold in meas_event_T for internal measurement
357 *
358 * removed!
359 * removed!
360 * 1. rename the modulation_E to tdd128_modulation_E
361 *
362 * removed!
363 * removed!
364 * 1. remove the last comma in the enum defination, which cause compiling error
365 * 2.change the type of num_timeslot in dl_dpch_rl_T from "kal_int8" to "kal_uint8"
366 *
367 * removed!
368 * removed!
369 * Rename __UMTS_TDD128_RAT__ to __UMTS_TDD128_MODE__
370 *
371 * removed!
372 * removed!
373 * add log section for tl1interface header files
374 *
375*******************************************************************************/
376
377#ifndef _TL1_DEF_H
378#define _TL1_DEF_H
379
380#include "kal_public_api.h" //MSBB change #include "kal_release.h"
381#include "tl1_cnst.h"
382#include "gmss_public.h" /*Ubin xxx_duplex_mode_type define*/
383
384//MCU and DMA mode switch for TL1 and MAC using
385
386/*macro for for constant */
387#define CRC_LENGTH_0_BITS 0
388#define CRC_LENGTH_8_BITS 8
389#define CRC_LENGTH_12_BITS 12
390#define CRC_LENGTH_16_BITS 16
391#define CRC_LENGTH_24_BITS 24
392
393/*TTI length in subframe*/
394#define TTI_5_MS 1
395#define TTI_10_MS 2
396#define TTI_20_MS 4
397#define TTI_40_MS 8
398#define TTI_80_MS 16
399#define MAX_TTI TTI_80_MS
400
401/*bit map of channelisation code*/
402#define CCODE_16_1 (0x00000001)
403#define CCODE_16_2 (0x00000002)
404#define CCODE_16_3 (0x00000004)
405#define CCODE_16_4 (0x00000008)
406#define CCODE_16_5 (0x00000010)
407#define CCODE_16_6 (0x00000020)
408#define CCODE_16_7 (0x00000040)
409#define CCODE_16_8 (0x00000080)
410#define CCODE_16_9 (0x00000100)
411#define CCODE_16_10 (0x00000200)
412#define CCODE_16_11 (0x00000400)
413#define CCODE_16_12 (0x00000800)
414#define CCODE_16_13 (0x00001000)
415#define CCODE_16_14 (0x00002000)
416#define CCODE_16_15 (0x00004000)
417#define CCODE_16_16 (0x00008000)
418
419#define CCODE_8_1 (0x00010000)
420#define CCODE_8_2 (0x00020000)
421#define CCODE_8_3 (0x00040000)
422#define CCODE_8_4 (0x00080000)
423#define CCODE_8_5 (0x00100000)
424#define CCODE_8_6 (0x00200000)
425#define CCODE_8_7 (0x00400000)
426#define CCODE_8_8 (0x00800000)
427
428#define CCODE_4_1 (0x01000000)
429#define CCODE_4_2 (0x02000000)
430#define CCODE_4_3 (0x04000000)
431#define CCODE_4_4 (0x08000000)
432
433#define CCODE_2_1 (0x10000000)
434#define CCODE_2_2 (0x20000000)
435
436#define CCODE_1_1 (0x40000000)
437#define CCODE_RESERVED (0x80000000)
438
439#define CCODE_SF1_MASK (0x40000000)
440#define CCODE_SF2_MASK (0x30000000)
441#define CCODE_SF4_MASK (0x0F000000)
442#define CCODE_SF8_MASK (0x00FF0000)
443#define CCODE_SF16_MASK (0x0000FFFF)
444
445#define CCODE_SF1_SHFT (30)
446#define CCODE_SF2_SHFT (28)
447#define CCODE_SF4_SHFT (24)
448#define CCODE_SF8_SHFT (16)
449#define CCODE_SF16_SHFT (0)
450
451/*timeslot mask*/
452#define TIMESLOT_0_MASK (0x01)
453#define TIMESLOT_1_MASK (0x02)
454#define TIMESLOT_2_MASK (0x04)
455#define TIMESLOT_3_MASK (0x08)
456#define TIMESLOT_4_MASK (0x10)
457#define TIMESLOT_5_MASK (0x20)
458#define TIMESLOT_6_MASK (0x40)
459#define TIMESLOT_DWPTS_MASK (0x80) /*for rx */
460#define TIMESLOT_UPPCH_MASK (0x100) /*for tx*/
461
462
463/*dch modify field mask*/
464#define DCH_MODIFY_NONE 0x00000000
465#define DCH_MODIFY_DL_TRCH_PARAM 0x00000001
466#define DCH_MODIFY_DL_TFCS_PARAM 0x00000002
467#define DCH_MODIFY_UL_TRCH_PARAM 0x00000004
468#define DCH_MODIFY_UL_TFCS_PARAM 0x00000008
469#define DCH_MODIFY_DL_COMM_RL_PARAM 0x00000010
470#define DCH_MODIFY_DL_EACH_RL_PARAM 0x00000020
471#define DCH_MODIFY_UL_RL_PARAM 0x00000040
472#define DCH_MODIFY_PHY_PARAM 0x00000080
473#define DCH_MODIFY_DL_ESTABLISH_PARAM 0x00000100
474#define DCH_MODIFY_SBGP 0x00000200
475#define DCH_MODIFY_UL_POWER_INFO 0x00000400
476#define DCH_MODIFY_ALL 0xFFFFFFFF/*when dch-setup-req, set the value.*/
477
478/*bch modify_field bit mask*/
479#define BCH_PRIORITY_CAHNGE 0x01
480#define BCH_SIB_SCHEDULE_CAHNGE 0x02
481
482/*AST trace compile option*/
483//#ifdef NAND_SUPPORT
484//#ifndef __AST_TRACE_TST_ENABLE__
485//#define __AST_TRACE_TST_ENABLE__
486//#endif
487//#endif /*NAND_SUPPORT*/
488#if defined(__MD95__)
489#define TDS_TL1_SAR_ANT_PHYSICAL_TL1D_SUPPORT_NUMBER (8)
490#endif
491#if defined(__MD97__)
492#define TDS_TL1_SAR_ANT_PHYSICAL_TL1D_SUPPORT_NUMBER (16)
493#endif
494
495#if (defined(__MD95__) || defined(__MD97__))
496#define TDS_TL1_SAR_ANT_PHYSICAL_CUSTOMER_SUPPORT_NUMBER (5)
497#define TDS_TL1_SAR_ANT_FREQLIST_SUPPORT_NUMBER (3)
498#endif
499
500#if defined(__SAR_TX_POWER_BACKOFF_SUPPORT__) && defined(__MD95__)
501#define TDS_TL1_SAR_ANT_SCENARIOR_SUPPORT_NUMBER (9)
502#endif
503
504#if defined(__SAR_TX_POWER_BACKOFF_SUPPORT__) && defined(__MD97__)
505#define TDS_TL1_SAR_ANT_SCENARIOR_SUPPORT_NUMBER (21)
506#endif
507
508#if defined(__TX_POWER_OFFSET_SUPPORT__)
509#define TDS_TL1_SWTP_ANT_SCENARIOR_SUPPORT_NUMBER (1)
510#endif
511
512#define TDS_TL1_SAR_ANT_POWERBACK_DIMON_NUMBER (3)
513#define TDS_TL1_SAR_ANT_DIFF_ANT_OFT_FIX_UTAS (7)
514
515
516#define TDS_TL1_TAS_PHYSICAL_SUPPORT_BAND (0x02)
517#define TDS_TL1_UTAS_SUPPORT_VERSION (0x03)
518#define TDS_TL1_UTAS_BAND34_IND (0x0)
519#define TDS_TL1_UTAS_BAND39_IND (0x1)
520#define TDS_TL1_UTAS_BAND34_NUMBER (34)
521#define TDS_TL1_UTAS_BAND39_NUMBER (39)
522
523#define TDS_TL1_TAS_PHYSICAL_MIPI_DEVICE_NUMBER (0x06)
524#define TDS_TL1_DAT_PHYSICAL_MIPI_DEVICE_NUMBER (0x05)
525/*2 ANT no need clear meas result, because alway meas the same ant
526 above 2 ant, we need clear period! 200ms switch ant port. 4 result(50ms/200ms) judge switch or not
527 this also the diff between V1.0 & V2.0 TAS*/
528#define TDS_TL1_TAS_STATE_CLEAR_RESULT_THREADHOLD (0x2)
529#define TDS_TL1_TAS_MEAS_COMMAND_IDX_SHIFT_LENGTH (0x2)
530#define TDS_TL1_TAS_BAND34_L1_MAX_FREQ (10125)
531#define TDS_TL1_TAS_BAND34_L1_MIN_FREQ (10050)
532#define TDS_TL1_TAS_BAND39_L1_MAX_FREQ_EXT (9600)
533#define TDS_TL1_TAS_BAND39_L1_MIN_FREQ_EXT (9400)
534#define TDS_TL1_TAS_BAND40_L1_MAX_FREQ_EXT1 (12000)
535#define TDS_TL1_TAS_BAND40_L1_MIN_FREQ_EXT1 (11500)
536#define TDS_TL1_TAS_BAND_MESSAGE_NULL_IND (0xFFFF)
537
538
539#if (defined(__MD95__) || defined(__MD97__))
540#define TDS_TL1_UTAS_SWITCH_IND (0x0)
541#define TDS_TL1_UTAS_TUNING_IND (0x1)
542#define TDS_TL1_UTAS_SWITCH_TUNER_NUM 2
543#define TDS_TL1_UTAS_ANT_INDEX_PORT_BIT_WIDTH (0x04)
544#define TDS_TL1_UTAS_ANT_INDEX_PORT_BIT_MASK (0x000F)
545#define TDS_TL1_UTAS_RX_PRIANT_PORT_NUMBER_IND (0x0)
546//#define TDS_TL1_UTAS_MML1_ANT_MAX_STATE_SETTING (24) // MMRFD_TAS_STATE_NUM MUST align with mml1
547#define TDS_TL1_UTAS_MML1_ANT_UNAVAILBLE_SETTING (0xFF) //MMRFD_TAS_STATE_NULL MUST align with mml1
548#define TDS_TL1_UTAS_ANT_TUNER_CONTROL_SETTING_NUM (34) //MMRFD_ANT_TUNER_CONTROL_SETTING_NUM MUST align with mml1
549#define TDS_TL1_UTAS_MMRFD_TAS_MAX_HW_GROUP_NUM (10) //MMRFD_TAS_MAX_HW_GROUP_NUM MUST align with mml1
550#define TDSCDMA_TAS_MIPI_TABLE_MAX_DATA_ROUTE 32
551
552#define TDSCDMA_DAT_MIPI_TABLE_MAX_DATA_ROUTE 32
553#define TDS_TL1_DAT_SWITCH_TUNER_NUM 2
554#define TDS_TL1_DAT_SWITCH_IND (0x0)
555#define TDS_TL1_DAT_TUNING_IND (0x1)
556#define TDS_TL1_RX_TX_NUM 2
557#define TDS_TL1_RX_INDEX 0
558#define TDS_TL1_TX_INDEX 1
559
560/*UTAS95 used for internal TDS state idx! careful: meaning IDX */
561typedef enum
562 {
563 TDSCDMA_TAS_STATE0,
564 TDSCDMA_TAS_STATE1,
565 TDSCDMA_TAS_STATE2,
566 TDSCDMA_TAS_STATE3,
567 TDSCDMA_TAS_STATE4,
568 TDSCDMA_TAS_STATE5,
569 TDSCDMA_TAS_STATE6,
570 TDSCDMA_TAS_STATE7,
571 TDSCDMA_TAS_STATE_NUM,
572 TDSCDMA_TAS_STATE_NULL = TDS_TL1_UTAS_MML1_ANT_UNAVAILBLE_SETTING,
573 }TDSCDMA_CUSTOM_TAS_STATE_E;
574
575/*UTAS95 used for internal TDS ant port! careful: meaning ant port number, physical ant port number */
576typedef enum
577 {
578 TDSCDMA_TAS_STATE0_ANT_PORT,
579 TDSCDMA_TAS_STATE1_ANT_PORT,
580 TDSCDMA_TAS_STATE2_ANT_PORT,
581 TDSCDMA_TAS_STATE3_ANT_PORT,
582 TDSCDMA_TAS_STATE4_ANT_PORT,
583 TDSCDMA_TAS_STATE5_ANT_PORT,
584 TDSCDMA_TAS_STATE6_ANT_PORT,
585 TDSCDMA_TAS_STATE7_ANT_PORT,
586 TDSCDMA_TAS_STATE8_ANT_PORT,
587 TDSCDMA_TAS_STATE9_ANT_PORT,
588 TDSCDMA_TAS_STATE10_ANT_PORT,
589 TDSCDMA_TAS_STATE11_ANT_PORT,
590 TDSCDMA_TAS_STATE12_ANT_PORT,
591 TDSCDMA_TAS_STATE13_ANT_PORT,
592 TDSCDMA_TAS_STATE14_ANT_PORT,
593 TDSCDMA_TAS_STATE15_ANT_PORT,
594 TDSCDMA_TAS_STATE_NUM_ANT_PORT,
595 TDSCDMA_TAS_STATE_NULL_ANT_PORT = TDS_TL1_UTAS_MML1_ANT_UNAVAILBLE_SETTING,
596 }TDSCDMA_CUSTOM_TAS_STATE_ANT_PORT_E;
597
598
599/*UTAS config check error code */
600
601#define TDS_TL1_UTAS_ERROR_CHECK_MMRFD_HW_GROUP_NUM_IDX (0x1)
602#define TDS_TL1_UTAS_ERROR_CHECK_MML1_ANT_TUNER_CONTROL_SETTING_IDX (0x2)
603#define TDS_TL1_UTAS_ERROR_CHECK_META_BAND_ROUTE_INIT_SETTING_REAL (0x3)
604#define TDS_TL1_UTAS_ERROR_CHECK_FORCE_MODE_TAS_FEATURE (0x4)
605#define TDS_TL1_UTAS_ERROR_CHECK_REALSIM_BAND34_INIT_STATE (0x5)
606#define TDS_TL1_UTAS_ERROR_CHECK_REALSIM_BAND39_INIT_STATE (0x6)
607#define TDS_TL1_UTAS_ERROR_CHECK_TESTSIM_BAND34_INIT_STATE (0x7)
608#define TDS_TL1_UTAS_ERROR_CHECK_TESTSIM_BAND39_INIT_STATE (0x8)
609#define TDS_TL1_UTAS_ERROR_CHECK_STATE_CHANGE_TO_IDX_FAIL (0x9)
610#define TDS_TL1_UTAS_ERROR_CHECK_BAND34_MAX_ANT_STATE_OVERRIDE (0xA)
611#define TDS_TL1_UTAS_ERROR_CHECK_BAND39_MAX_ANT_STATE_OVERRIDE (0xB)
612#define TDS_TL1_UTAS_ERROR_CHECK_FORCE_ENABLE_STATE_MISMATCH_BYBAND (0xC)
613#define TDS_TL1_UTAS_ERROR_CHECK_FORCE_ENABLE_STATE_MISMATCH_BYCOMMON (0xD)
614#define TDS_TL1_UTAS_ERROR_CHECK_TDS_REALSIM_STATE_MISMATCH_MML1_CONFIG (0xE)
615#define TDS_TL1_UTAS_ERROR_CHECK_TDS_TESTSIM_STATE_MISMATCH_MML1_CONFIG (0xF)
616#define TDS_TL1_UTAS_ERROR_CHECK_TDS_META_STATE_MISMATCH_MML1_CONFIG (0x10)
617
618
619#define TDS_TL1_TAS_PHYSICAL_MAX_ANT (0x08)
620#define TDS_TL1_TAS_STATE_BITMAP_LENGTH (0x08)
621#define TDS_TL1_TAS_D_DIE_IDX (0x0)
622#define TDS_TL1_TAS_A_DIE_IDX (0x1)
623#define TDS_TL1_TAS_A_D_DIE_NUM (0x2)
624#define TDS_TL1_TAS_PHYSICAL_ANT_NUM (0x10)
625#endif
626
627#define TDS_TL1_DAT_MAX_STATE (0x08)
628#define TDS_TL1_DAT_D_DIE_IDX (0x0)
629#define TDS_TL1_DAT_A_DIE_IDX (0x1)
630#define TDS_TL1_DAT_A_D_DIE_NUM (0x2)
631
632
633/*MTK80428 UMAC TL1 related definition*/
634typedef struct
635{
636 kal_bool IsPartOfMinSet;
637 kal_uint16 TFCI;
638 kal_uint32 CTFC;
639 kal_uint32 TFI[TDD_MAX_TRCH_NUM];
640 kal_int32 aPriorityBits[13];
641} TDD_tTFC;
642
643
644/*-------- PhyCH related definition ----------------------*/
645typedef enum _TDD_access_status_E
646{
647 TDD_AI_ACK = 0, /* Network ACK */
648 TDD_AI_NACK, /* Network NACK in AICH,TL1 will not support this item. */
649 TDD_AI_NOACK, /* Network sends "NO_ACK"*/
650 TDD_AI_ABORT, /* Access transaction has been aborted as result of high layer
651 reconfiguration(from RRC).EX:CPHY_RACH_RELEASE_REQ*/
652 TDD_AI_PARAMERROR, /*replaced by NO_UPPCH_SUBCHANNEL,NO_RACH_DATA and NO_RACH_CFG*/
653 TDD_AI_NESTEDREQUEST, /*Not used in TDD128*/
654 TDD_AI_PARAMERROR_NO_UPPCH_SUBCHANNEL, /*uppch subchannel is zero according to asc index*/
655 TDD_AI_PARAMERROR_NO_RACH_DATA, /*no valid rach data in TL1 when receiving PHY_ACCESS_REQ*/
656 TDD_AI_PARAMERROR_NO_RACH_CFG /*no active rach channel when receiving PHY_ACCESS_REQ*/
657} TDD_access_status_E;
658
659
660
661/*-------- TFS related definition ----------------------*/
662typedef enum _TDD_cc_type_T
663{
664 TDD_CC_NONE = 0, /*No coding*/
665 TDD_CC_CONV12, /*Convolution coding with coding rate 1/2*/
666 TDD_CC_CONV13, /*Convolution coding with coding rate 1/3*/
667 TDD_CC_TURBO /*Turbo coding */
668} TDD_cc_type_T;
669
670typedef enum
671{
672 TDD_GAIN_FACTOR_NONE = 0, /*no gian factor applied */
673 TDD_GAIN_FACTOR_SIGNAL, /*gain factor indicated by signal */
674 TDD_GAIN_FACTOR_COMPUTE /*computed gain factor */
675} TDD_gain_factor_E;
676
677typedef struct _TDD_tfs_static_T
678{
679 kal_uint8 tti; /* TTI. 1, 2, 4, 8, 16, in unit of subframe frame.*/
680 TDD_cc_type_T channel_coding; /* Coding type */
681 kal_uint8 rm_attr; /* RM attribute */
682 kal_uint8 crc_size; /* # of CRC bits. 0,8,12,16,24 */
683} TDD_tfs_static_T;
684
685typedef struct _TDD_tfs_dyn_T
686{
687 kal_uint8 tb_num; /* # of TB */
688 kal_uint16 tb_size; /* # of bibts in a TB */
689} TDD_tfs_dyn_T;
690
691typedef struct _TDD_tfs_T
692{
693 kal_uint8 tf_num; /* # of TF in this TFS */
694 TDD_tfs_dyn_T tfs_dynamic[TDD_MAXTF]; /* TFS dynamic part */
695 TDD_tfs_static_T tfs_static; /* TFS static part */
696} TDD_tfs_T;
697
698
699typedef struct _TDD_dl_establish_T
700{
701 kal_uint8 t312; /* T312 */
702 kal_uint16 n312; /* N312 */
703 kal_uint8 n313; /* N313 */
704 kal_uint8 t313; /* T313 */
705 kal_uint16 n315; /* N315 */
706} TDD_dl_establish_T;
707
708/*-------- TFCS related definition ----------------------*/
709typedef struct _TDD_sig_gain_T
710{
711 kal_uint8 beta_d; /* Bd. 0 ~ 15 */
712 kal_int8 ref_tfc_id; /* Reference TFC ID. -1 ~ 3. */
713 /* 0 ~ 3 : This TFCI is a referenced id for other computed TFC. */
714 /* -1 : It is an invalid value. Means it will not be referenced by other TFC. */
715} TDD_sig_gain_T;
716
717typedef union _TDD_gain_factor_U
718{
719 kal_int8 computed_gain_id; /* For computed gain factor using reference TFC id. 0 ~ 3 */
720 TDD_sig_gain_T sig_gain; /* The signaled gain factor. */
721} TDD_gain_factor_U;
722
723
724typedef struct _TDD_ul_dpch_tfc_T
725{
726 kal_uint8 tfi_list[TDD_MAX_TRCH_NUM]; /* The list of TFI for this TFCI for UL DCH TrCH */
727 TDD_gain_factor_E gain_factor_ind; /* Gain factor enum:TDD_GAIN_FACTOR_NONE,TDD_GAIN_FACTOR_SIGNAL,TDD_GAIN_FACTOR_COMPUTE */
728 TDD_gain_factor_U gain_factor; /* The union of gain factor for computed and signaled type. */
729} TDD_ul_dpch_tfc_T;
730
731typedef struct _TDD_rach_tfc_T
732{
733 kal_uint8 tfi_list; /* The list of TFI for this TFCI. The number of TrCH for PRACH is 1. */
734 kal_bool sig_gain_ind; /* True: Gain factor is siganled. False: Gain factor is computed from reference TFCI */
735 kal_int8 msg_pwr_offset; /* Power offset between the last preamble and the control part of RACH */
736 TDD_gain_factor_U gain_factor; /* Gain factor */
737} TDD_ul_rach_tfc_T;
738
739typedef struct _TDD_dl_tfc_T
740{
741 kal_uint8 tfi_list[TDD_MAX_TRCH_NUM]; /* The list of TFI for this TFCI for DL TrCH */
742} TDD_dl_tfc_T;
743
744/*-------- TrCH related definition ----------------------*/
745
746typedef struct _TDD_trch_T
747{
748 kal_uint8 trch_id; /* TrCH ID 1 ~ 32 */
749 kal_uint8 bit_offset; /* Bit offset. 0 ~ 7 ,Bit offset in PHY_DATA_IND*/
750 TDD_tfs_T tfs; /* TFS of this TrCH */
751 kal_int8 target_bler; /* [Range]: -63 ~ 0, -64.Dividing the value
752 of this field to 10 get the real BLER. "target_bler?value will be: -63 ~ 0
753 (real BLER: -6.3~0 = log10 (BLER)).-64 is used for invalid value to inform TL1
754 that this field is not configured by NW.*/
755} TDD_trch_T,
756 TDD_ul_rach_trch_T,
757 TDD_ul_dch_trch_T,
758 TDD_dl_fachpch_trch_T,
759 TDD_dl_dch_trch_T;
760
761
762/*-------- CCTrCH related definition ----------------------*/
763typedef enum _TDD_cctrch_type_E
764{
765 TDD_CCTRCH_UL_RACH, /* UL RACH CCTrCH */
766 TDD_CCTRCH_UL_DCH, /* UL DCH CCTrCH */
767 TDD_CCTRCH_DL_DCH, /* DL DCH CCTrCH */
768 TDD_CCTRCH_DL_PCH, /* DL PCH CCTrCH */
769 TDD_CCTRCH_DL_FACH, /* DL FACH CCTrCH */
770 TDD_CCTRCH_DL_BCH, /* DL BCH CCTrCH */
771 TDD_MAX_NUM_CCTRCH_TYPE /*2009/07/07 mtk80318: add */
772} TDD_cctrch_type_E;
773
774/*-------- BCH related definition ----------------------*/
775typedef struct _TDD_sib_info_T
776{
777 kal_uint8 seg_count; /* SEG_COUNT 1 ~ 16 */
778 kal_uint16 sib_rep; /* SIB_REP 2^2 ~ 2^12 */
779 kal_uint16 sib_pos; /* SIB_POS 0 ~ sib_rep-2 */
780 kal_uint8 sib_off[TDD_MAX_SIB_SEG_COUNT]; /* SIB_OFF 2 ~ 32 The # of elements of this field is equal to seg_count-1 */
781} TDD_sib_info_T;
782
783typedef enum _TDD_bch_priority_T
784{
785 TDD_BCH_PRIOHIGH, /* Priority High */
786 TDD_BCH_PRIOMEDIUM, /* Priority Medium, not used currrently, just keep for future use*/
787 TDD_BCH_PRIOLOW /* Priority Low */
788} TDD_bch_priority_T;
789
790/*-------- Data related definition ----------------------*/
791typedef struct _TDD_dlTrchData
792{
793 kal_uint8 trchId; /* TrCH ID */
794 kal_uint16 tb_size; /* TB size in bit. 0 ~ 4992 */
795 kal_uint16 num_tb; /* # of TB. 0 ~ 512 */
796} TDD_dlTrchData;
797
798typedef struct _TDD_ulTrchData
799{
800 kal_uint8 trchId; /* TrCH ID */
801 kal_uint16 tb_size; /* TB size in bit. 0 ~ 4992 */
802 kal_uint16 num_tb; /* # of TB. 0 ~ 512 */
803} TDD_ulTrchData;
804
805/*tx enable type*/
806typedef enum _TDD_tx_enable_type_E
807{
808 TDD_TX_ENABLED = 0,
809 TDD_TX_DISABLED_TDM_GAP,
810 TDD_TX_DISABLED_DCH_RELEASE_ONLY,
811 TDD_TX_DISABLED_DM_GAP,
812#ifdef __GEMINI__
813 TDD_TX_DISABLED_NO_DPCH,
814 TDD_TX_DISABLED_GEMINI_GAP,
815#else
816 TDD_TX_DISABLED_NO_DPCH
817#endif
818}TDD_tx_enable_type_E;
819
820typedef struct _TDD_uldch_data_req_T
821{
822 kal_uint8 cfn;
823 kal_uint8 ul_mac_event; /* bit 0: UL DCH setup, */
824 /* bit 1: UL DCH release, */
825 /* bit 2: UL DCH modify */
826 TDD_tx_enable_type_E tx_enable;
827 kal_bool tx_suspend;
828 kal_uint8 tfc_status[TDD_MAX_UL_TFC];
829
830 kal_uint8 meas_occasion_ind;
831
832} TDD_uldch_data_req_T;
833
834/* uldch data indication, mac to tl1 */
835typedef struct _TDD_uldch_data_ind_T
836{
837 kal_bool bTxDataAvailable; //KAL_FALSE: no data to send; KAL_TRUE: need send data, included SB
838 kal_uint8 cfn;
839 kal_bool is_10_srb;
840 kal_bool is_40_srb;
841 kal_uint8 num_trch;
842 TDD_ulTrchData trchInfo[TDD_MAX_TRCH_NUM]; /* TrCH information including number of TB and TB size. Note that only 1 TRCH is included in RACH data. */
843 kal_uint16 tfci;
844 kal_uint16 num_data[TDD_MAX_TRCH_NUM]; /* num_data[TDD_MAX_TRCH_NUM]. It means the total TB size on 1 TRCH. Value: 0 ~ TDD_MAX_UL_TB. */
845 kal_uint8 *data[TDD_MAX_TRCH_NUM]; /*Point to ÿÌõTRCH data buffer. Data buffÓÉMAC allocate and bufferÖ¸ÕëÓÉMACÌîÈ룬ÓÉTL1D¶ÁÈ¡¡£µ±TL1D´¦ÀíÍêTX dataºó»á·¢ËÍPOST TX DATA IND֪ͨMACÊÍ·Å¡£ÐèÒªsystem service±£Ö¤MAC of CR4ÓëTL1D of MD32¿´µ½µÄbufferµØÖ·ÊÇÒ»ÑùµÄ¡£*/
846 TDD_tTFC *pTFC; /* Store the chosen TFC structure pointer. Use it to assign pCCTrCh->pTFCInLastTTI */
847} TDD_uldch_data_ind_T;
848
849typedef enum _TDD_measured_type_T
850{
851 TDD_INTRA_FREQUENCY_MEASURED, /*Intra-Frequency measurement.*/
852 TDD_INTER_FREQUENCY_MEASURED, /*Inter-Frequency measurement.*/
853 TDD_FREQ_SCAN_DETECTED, /*The measured cell is detected in the frequency scan procedure.*/
854 TDD_SERVING_ONLY /*Serving cell measurement*/
855} TDD_measured_type_T;
856
857/*-------- FACH MO related definition ----------------------*/
858typedef struct _TDD_fach_mo_info_T
859{
860 kal_uint8 n; /* # of frames in max TTI. 1,2,4,8 */
861 kal_uint8 k; /* MO cycle length coefficient. M_REP=2^k */
862 kal_bool inter_freq_ind; /* Indicate if inter-frequency meas in MO */
863 kal_bool inter_rat_ind; /* Indicate if inter-RAT meas in MO */
864 kal_uint16 start_off; /* C_RNTI % M_REP. 0 ~ 4095 */
865} TDD_fach_mo_info_T;
866
867/*-------- Operation-Mode related definition ----------------------*/
868
869typedef enum _TDD_mode_type_E
870{
871 TDD_OM_SINGLE, /* Single Mode */
872 TDD_OM_MULTI, /* MULTI Mode */
873 TDD_OM_DUAL //for build
874} TDD_mode_type_E;
875
876typedef enum _TDD_rat_type_E
877{
878 TDD_TL1_RAT_UMTS_ACTIVE, /* UMTS active */
879 TDD_TL1_RAT_UMTS_INACTIVE, /* UMTS_Inactive*/
880 TDD_TL1_RAT_FLIGHT, /* Flight mode */
881 TDD_TL1_RAT_UMTS, //for build
882 TDD_TL1_RAT_GSM //for build
883} TDD_rat_type_E;
884
885typedef struct _TDD_duplex_mode_info_T
886{
887 umts_duplex_mode_type source_umts_duplex_mode;
888 umts_duplex_mode_type target_umts_duplex_mode;
889 lte_duplex_mode_type source_lte_duplex_mode;
890 lte_duplex_mode_type target_lte_duplex_mode;
891} TDD_duplex_mode_info_T;
892
893
894/*-------- Message(Primitive) related definition ----------------------*/
895
896typedef enum _TDD_dch_modify_msg_type_E
897{
898 TDD_DCH_RECONFIG = 0, /* Used when DCH is reconfigured */
899 TDD_DCH_LOOP_MODE_2 = 2, /* Used when DCH loop back mode 2 */
900 TDD_DCH_UPLINK_PHYSICAL_CHANNEL_CONTROL, /* Used when Physical channel control message received */
901} TDD_dch_modify_msg_type_E;
902
903
904typedef enum _TDD_msg_container_error_E /* Error cause of message container, MA only*/
905{
906 TDD_NONE,
907 TDD_DCH_FAIL,
908 TDD_COMMON_FAIL
909} TDD_msg_container_error_E;
910
911
912/*
913typedef enum _meas_control_E
914{
915 MEAS_CTRL_INVALID, // No meas. control action in current MSG_CONTAINER
916 MEAS_STOP, //TL1 do not need to resume measurement after apply current MSG_CONTAINER
917 MEAS_CONTI // TL1 do need to resume measurement after apply current MSG_CONTAINER
918} meas_control_E;
919*/
920/*Add for improving full band FS efficiency -- by excluding some UARFCN or some frequency range*/
921typedef enum _TDD_full_band_option_E
922{
923 TDD_FULL_BAND_ONLY, /*Normal full band FS*/
924 TDD_FULL_BAND_AND_EXCLUDE /*Full band FS but the indicated frequency list/range will be excluded in the full band FS procedure*/
925} TDD_full_band_option_E;
926
927
928
929
930typedef enum
931{
932 TDD_CRC_ERROR,
933 TDD_CRC_OK,
934 TDD_CRC_NO_CRC
935} TDD_crc_status_E;
936
937/*Define tineslot*/
938typedef enum
939{
940 TDD_TIMESLOT_0 = 0,
941 TDD_TIMESLOT_1,
942 TDD_TIMESLOT_2,
943 TDD_TIMESLOT_3,
944 TDD_TIMESLOT_4,
945 TDD_TIMESLOT_5,
946 TDD_TIMESLOT_6,
947 TDD_TIMESLOT_DWPTS,
948 TDD_TIMESLOT_UPPCH /*TDD_MAX_TIMESLOT_PER_SUBFRAME does not inlcude dwpts and uppch*/
949} TDD_timeslot_E;
950
951typedef enum
952{
953 TDD_DL_DIRECTION =0,
954 TDD_UL_DIRECTION,
955 TDD_MAX_NUM_DIRECTION
956}TDD_direction_E;
957
958typedef enum _TDD_tfci_len_E
959{
960 TDD_TFCI_0_BITS=0,
961 TDD_TFCI_4_BITS=4,
962 TDD_TFCI_8_BITS=8,
963 TDD_TFCI_16_BITS=16,
964 TDD_TFCI_32_BITS=32
965} TDD_tfci_len_E;
966
967typedef enum _TDD_midamble_alloction_mode_E
968{
969 TDD_MIDAMBLE_ALLOC_DMA=0,
970 TDD_MIDAMBLE_ALLOC_CMA=1,
971 TDD_MIDAMBLE_ALLOC_SPECIFIC=2
972} TDD_midamble_alloction_mode_E;
973
974typedef enum _TDD_ss_tpc_len_E
975{
976 TDD_SS_TPC_0_SYMBOLS = 0,
977 TDD_SS_TPC_1_SYMBOLS,
978 TDD_SS_TPC_16_DIVIDE_SF_SYMBOLS
979} TDD_ss_tpc_len_E;
980
981typedef enum _TDD_max_retrans_E
982{
983 TDD_MAX_RETRANS_1 = 1, /*max retranmit 1 time*/
984 TDD_MAX_RETRANS_2 = 2, /*max retranmit 2 times*/
985 TDD_MAX_RETRANS_4 = 4, /*max retranmit 4 times*/
986 TDD_MAX_RETRANS_8 = 8 /*max retranmit 8 times*/
987} TDD_max_retrans_E;
988
989typedef enum _TDD_tdd128_modulation_E
990{
991 TDD_TDD128_MODULATION_QPSK = 0, /*QPSK*/
992 TDD_TDD128_MODULATION_8PSK, /*8PSK*/
993 TDD_TDD128_MODULATION_16QAM /*16QAM*/
994} TDD_tdd128_modulation_E;
995
996typedef enum _TDD_midamble_config_E
997{
998 TDD_MIDAMBLE_CONFIG_2 = 2,
999 TDD_MIDAMBLE_CONFIG_4 = 4,
1000 TDD_MIDAMBLE_CONFIG_6 = 6,
1001 TDD_MIDAMBLE_CONFIG_8 = 8,
1002 TDD_MIDAMBLE_CONFIG_10 = 10,
1003 TDD_MIDAMBLE_CONFIG_12 = 12,
1004 TDD_MIDAMBLE_CONFIG_14 = 14,
1005 TDD_MIDAMBLE_CONFIG_16 = 16
1006} TDD_midamble_config_E;
1007
1008typedef enum _TDD_second_interleave_mode_E
1009{
1010 TDD_SECOND_INTERLEAVE_FRAME = 0, /*frame interleval*/
1011 TDD_SECOND_INTERLEAVE_TIMESLOT /*timeslot interleval*/
1012} TDD_second_interleave_mode_E;
1013
1014typedef enum _TDD_fpach_wt_E
1015{
1016 TDD_FPACH_WT_1 = 1,
1017 TDD_FPACH_WT_2 = 2,
1018 TDD_FPACH_WT_3 = 3,
1019 TDD_FPACH_WT_4 = 4
1020} TDD_fpach_wt_E;
1021
1022typedef enum _TDD_repeat_period_E
1023{
1024 TDD_REPEAT_PERIOD_1 = 1,
1025 TDD_REPEAT_PERIOD_2 = 2,
1026 TDD_REPEAT_PERIOD_4 = 4,
1027 TDD_REPEAT_PERIOD_8 = 8,
1028 TDD_REPEAT_PERIOD_16 = 16,
1029 TDD_REPEAT_PERIOD_32 = 32,
1030 TDD_REPEAT_PERIOD_64 = 64
1031} TDD_repeat_period_E;
1032
1033
1034typedef enum _TDD_sib_rep_E
1035{
1036 TDD_SIB_REP_2 = 2,
1037 TDD_SIB_REP_4 = 4,
1038 TDD_SIB_REP_8 = 8,
1039 TDD_SIB_REP_16 = 16,
1040 TDD_SIB_REP_32 = 32,
1041 TDD_SIB_REP_64 = 64,
1042 TDD_SIB_REP_128 = 128,
1043 TDD_SIB_REP_256 = 256,
1044 TDD_SIB_REP_512 = 512,
1045 TDD_SIB_REP_1024 = 1024,
1046 TDD_SIB_REP_2048 = 2048,
1047 TDD_SIB_REP_4096 = 4096
1048} TDD_sib_rep_E;
1049
1050
1051typedef struct _TDD_ul_pc_info_T
1052{
1053 kal_int8 prx_dpch_des; /*-120 - -58 by step 1 in dBm,UL DPCH expected receive power at NodeB */
1054 kal_uint8 tpc_step; /*1 - 3, in dB,Tx power control step size*/
1055 kal_uint8 pccpch_tx_power; /*6 - 43 by step 1 in dBm,P-CCPCH transmit power*/
1056 kal_bool beacon_pl_est; /*TRUE: UE may take into account pathloss estimated from beacon function physical channels.
1057 FALSE: UE shall not take into account pathloss estimation.*/
1058} TDD_ul_pc_info_T;
1059
1060typedef struct _TDD_midamble_info_T
1061{
1062 TDD_midamble_alloction_mode_E midamble_allocation_mode; /*Midamble code allocation mode:DEFAULT,COMMON,UE_SPECIFIC.*/
1063 TDD_midamble_config_E midamble_config; /*2, 4, 6, 8, 10, 12, 14, 16,Midamble code configuration,*/
1064 kal_int8 midamble_shift; /*-1 - 15, -1 means invalid midamble shift. Midamble code shift*/
1065} TDD_midamble_info_T;
1066
1067typedef struct _TDD_phy_signaling_info_T
1068{
1069 TDD_tfci_len_E tfci_bits; /*tfci bits length*/
1070 TDD_ss_tpc_len_E ss_tpc_symbols; /*Amount of SS and TPC bits sent in this timeslot*/
1071 kal_uint8 additional_ss_tpc_symbols; /* 0 -15 , 0 for no additional SS and TPC symbols,The number of additional codes in this timeslot that carry TPC and SS symbols*/
1072} TDD_phy_signaling_info_T;
1073
1074typedef struct _TDD_timeslot_info_T
1075{
1076 kal_uint8 timeslot; /*0 - 6,Timeslot number, */
1077 kal_uint8 num_ccode; /*1 - 16,The number of ccode in this timeslot.*/
1078 kal_uint32 ccode_bitmap; /*bit0 is C16-1
1079 ` bit1 is C16-2
1080 ...
1081 bit 15 is C16-16
1082 bit16 is C8-1
1083 ..
1084 bit23 is C8-8
1085 bit24 is C4-1
1086 bit27 is C4-4
1087 bit28 is C2-1
1088 bit29 is C2-2
1089 bit30 is C1-1
1090 bit31 is reserved.*/
1091 TDD_tdd128_modulation_E modulation; /*modulation type*/
1092 TDD_midamble_info_T midamble; /*Midamble information*/
1093 TDD_phy_signaling_info_T phy_signaling; /*Physical signaling information.*/
1094} TDD_timeslot_info_T;
1095
1096typedef struct _TDD_fpach_info_T
1097{
1098 TDD_timeslot_info_T timeslot; /*0 - 6,Timeslot number, */
1099 TDD_fpach_wt_E wait_time; /*1~4,The number of sub-frames, where UE should monitor FPACH after sending SYNC UL.*/
1100} TDD_fpach_info_T;
1101
1102typedef struct _TDD_timeslot_common_T
1103{
1104 TDD_second_interleave_mode_E second_interleave;/*Mode of 2nd interleaving, Enums:FRAME_BASED,TIMESLOT_BASED*/
1105 kal_uint8 punc_limit; /*40~100. This parameter is the puncturing limit. The value is from 40 to 100. The real puncturing limit is the value of this parameter divided by 100. */
1106 TDD_repeat_period_E repeat_period; /*1, 2, 4, 8, 16, 32, 64, in frames. 1 means continuous allocation.Physical channel resource allocation period*/
1107 kal_uint8 repeat_length; /*[1, (RepeatPeriod - 1)] in frames.Physical channel resource allocation length*/
1108 kal_uint8 repeat_offset; /*[0, (RepeatPeriod - 1)],]: Physical channel resource allocation starting point, offset to RepeatPeriod.*/
1109} TDD_timeslot_common_T;
1110
1111
1112typedef struct _TDD_ul_dpch_info_T
1113{
1114 kal_uint8 ul_dpch_num; /*num of ul dpch, only can be 0 or 1;*/
1115 kal_int16 duration; /*0-4096, 0 for infinity.Total number of frames the physical resource will exist*/
1116 TDD_ul_pc_info_T ul_pc; /*UL power control info*/
1117 kal_uint8 sync_step; /*1 - 8, in 1/8 chip,Uplink synchronization step size.*/
1118 kal_uint8 sync_freq; /*1 - 8, in sub-frame,Uplink synchronization frequencies, */
1119 TDD_timeslot_common_T common; /*time slot common info*/
1120 kal_uint8 num_timeslot; /*number of UL timeslots*/
1121 TDD_timeslot_info_T timeslot_list[TDD_MAX_TIMESLOT_PER_SUBFRAME];/*info of each timeslot*/
1122} TDD_ul_dpch_info_T;
1123
1124typedef struct _TDD_dl_dpch_rla_T
1125{
1126 kal_uint8 tpc_step; /*1 - 3, in dB,Tx power control step size*/
1127 kal_int32 doff; /*-1 ~7, -1 means invalid,Default DPCH offset value*/
1128} TDD_dl_dpch_rla_T;
1129
1130
1131typedef struct _TDD_dl_dpch_rl_T
1132{
1133 kal_uint16 cell_param_id; /*0-127,Cell parameter ID*/
1134 kal_int32 tm; /*(-1~6400*8-1). 0~(6400*8-1) for a cell whose frame boundary offset has been measured by TL1.
1135 Otherwise, it can be set to ¡°-1¡± as an unknown tm value.
1136 Case TRHHO/DCH_Setup/BHO/TMHHO: PS needs to guarantee that tm and off is valid.
1137 Case TRHHO_Revert/TMHHO_Revert/IRAT_Revert/BHO_Revert*/
1138 kal_int16 off; /*Sub frame # offset to LST. -1 ~ 8191, -1 means unknown*/
1139 kal_bool tstd; /*True/False. True: tstd is applied on this cell¡¯s P-CCPCH.*/
1140 kal_int16 duration; /*0-4096, 0 for infinity,Total number of frames the physical resource will exist.*/
1141 TDD_timeslot_common_T common; /*common info of timeslots*/
1142 kal_uint8 num_timeslot; /*num of DL timeslot*/
1143 TDD_timeslot_info_T timeslot_list[TDD_MAX_TIMESLOT_PER_SUBFRAME];/*timeslot info*/
1144} TDD_dl_dpch_rl_T;
1145
1146typedef struct _TDD_sccpch_info_T
1147{
1148 TDD_timeslot_common_T common; /*common timeslot characters on cctrch level*/
1149 TDD_timeslot_info_T timeslot; /*info about this timeslot*/
1150} TDD_sccpch_info_T;
1151
1152
1153typedef enum _TDD_pi_len_E
1154{
1155 TDD_PI_LEN_4_BITS=4,
1156 TDD_PI_LEN_8_BITS=8,
1157 TDD_PI_LEN_16_BITS=16
1158} TDD_pi_len_E;
1159
1160typedef struct _TDD_pich_drx_T
1161{
1162 kal_uint8 pich_drx; /*[Range]: 3-9
1163 [Meaning]: Max(k, k'), k' is derived from PBP with PBP=2^ k',
1164 so the drx cycle length can be calculated via 2^pich_drx.*/
1165 kal_uint16 sfn_po; /*PICH starting point, offset to RepeatPeriod, in frames.
1166 sfn_po = {(IMSI div K) mod (DRX cycle length div PBP)} * PBP + frame_offset;
1167 Indicate the start of the PICH frame in one DRX cycle.*/
1168 kal_uint16 pi; /*The target PI¡¯s position in the paging indicator block.
1169 pi = (IMSI / 8192) mod NP; where NP = NPICH * (352*16/ 8 /2/pi_len).
1170 Indicate the UE¡¯s PI position in the paging indicator block*/
1171 TDD_pi_len_E pi_len; /*paging indicator length in bits*/
1172 kal_uint16 sfn_ro; /*PCH starting point, offset to the PagingOccasion, in frames.
1173 sfn_ro = NPICH + NGAP + {(pi mod Npch } *2*/
1174} TDD_pich_drx_T;
1175
1176typedef enum _TDD_pich_reconfig_type_E
1177
1178{
1179
1180 TDD_PCH_MODIFY, /* traditionaly PCH modify */
1181
1182 TDD_PCH_SMARTPAGE, /* to inform UL1 enable/disable SmartPaging*/
1183
1184} TDD_pich_reconfig_type_E;
1185
1186typedef struct _TDD_pich_smartpaging_T
1187
1188{
1189
1190 kal_bool support_repeat; /* If true: RRCE has detected that current NW can support smart paging (has repeated paging pattern) */
1191
1192 kal_uint16 sfn_po; /* DRX parameters for PICH.(when smartpging active) */
1193
1194 kal_uint16 sfn_ro; /* DRX parameters for PCH.(when smartpging active) */
1195
1196} TDD_pich_smartpaging_T;
1197
1198
1199typedef struct _TDD_pich_info_T
1200{
1201
1202 kal_uint8 pccpch_tx_power; /*[Range]: 6 ¨C 43 by step 1 in dBm
1203 [Meaning]: P-CCPCH transmit power.*/
1204 kal_int8 power_offset; /*[Range]: -10 ~ +5 in dB
1205 [Meaning]: The power offset of PICH to P-CCPCH Tx Power.
1206 TL1 can derive the PICH Tx power using power_offset and pccpch_tx_power. */
1207 kal_uint8 timeslot; /*[Range]: 0-6
1208 [Meaning]: The timeslot carring PICH info*/
1209 kal_uint32 ccode_bitmap; /*Bit map of used channelisation code
1210 bit0 is C16-1
1211 bit1 is C16-2
1212 ¡­.
1213 bit 15 is C16-16
1214 bit16 is C8-1
1215 ..
1216 bit23 is C8-8
1217 bit24 is C4-1
1218 bit27 is C4-4
1219 bit28 is C2-1
1220 bit29 is C2-2
1221 bit30 is C1-1
1222 bit31 is reserved.
1223 For PICH, only 2 SF=16 codes are used.*/
1224 TDD_midamble_info_T midamble; /*midamble info for PICH*/
1225 TDD_pich_drx_T pich_drx;
1226 TDD_pich_smartpaging_T smartpaging_info;
1227
1228 TDD_pich_drx_T pich_drx_cycle2; /* DRX parameters 2 for PICH. Valid for CELL_PCH and URA_PCH, not valid for IDLE-PCH */
1229 kal_uint16 drx_cycle2_time; /* if it's not 0. TL1 shall use pich_drx_2 for PICH receptin, else shall directly use pich_drx for PICH reception.
1230 Valid value: 0, 80,160,320,640,1280,2560,5120 (Uint: ms) */
1231
1232} TDD_pich_info_T;
1233
1234
1235typedef struct _TDD_tx_power_info_T
1236{
1237 kal_int16 tx_power[TDD_MAX_TIMESLOT_PER_SUBFRAME]; /*Tx power of each ul timeslot. The tx power is measured in both FACH and
1238 DCH state, "TDD_TX_POWER_INVALID" is used to for non tx slots.
1239 Range: -200- 136 means (-50dBm ~ 34dBm ) in 0.25dBm step*/
1240} TDD_tx_power_info_T;
1241
1242
1243typedef struct _TDD_tadv_info_T
1244{
1245 kal_int16 tadv; /*[Range]: Range: -1 -8191. 0-8191 means (0 ~ 1023.875 ) chips in 1/8 chip
1246 step, -1 means unknown tadv [Meaning]:timing advance*/
1247 kal_uint16 sfn; /*SFN during which the TADV measurement was performed*/
1248} TDD_tadv_info_T;
1249
1250typedef enum _TDD_internal_meas_E
1251{
1252 TDD_MEAS_TX_PWR = 1, /*measure UE transmitted power*/
1253 TDD_MEAS_RSSI, /*UTRA carrier RSSI*/
1254 TDD_MEAS_TA /*Timing Advance*/
1255} TDD_internal_meas_E;
1256
1257typedef enum _TDD_internal_meas_event_E
1258{
1259 TDD_EVENT_6A = 1, /*Measurement event 6A.*/
1260 TDD_EVENT_6B, /*Measurement event 6B.*/
1261 TDD_EVENT_6C, /*Measurement event 6C.*/
1262 TDD_EVENT_6D, /*Measurement event 6D.*/
1263 TDD_EVENT_6E, /*Measurement event 6E.*/
1264 TDD_EVENT_6F /*Measurement event 6F.*/
1265} TDD_internal_meas_event_E;
1266
1267typedef struct _TDD_meas_event_T
1268{
1269 TDD_internal_meas_event_E event_id; /*indicate internal measurement event ID.*/
1270 kal_int16 threshold; /*used for event6a,6b,6f. For event6f, the range is 0~512, which means 0~63chip in 0.125 chip step. Since UTRAN will configure
1271 the value in the range(768~1280) to UE, MEME will convert the value to range (0~512) by decreasing 768*/
1272 kal_uint16 delay; /*Time to Triggered. [Range]: 0 ~ 500 frames When an event is triggered, the
1273 report will be delayed until the time period indicated by this field has elapsed.*/
1274} TDD_meas_event_T;
1275
1276typedef struct _TDD_measured_cell_T
1277{
1278 kal_bool sctd; /*True/False. True: sctd is applied on this cell's P-CCPCH.
1279 False: sctd is not applied on this cell's P-CCPCH.*/
1280 kal_int16 rscp; /*RSCP. Range: -500~ -100 means (-125~ -25 )dBm in 0.25 dB step*/
1281 kal_uint16 cell_param_id; /*TS25.123:10.3.6.9*/
1282 kal_uint16 freq; /*Cell's UARFCN*/
1283 kal_int16 off; /*[Range]: (-1~8191). (0~8191) for a cell whose subframe SFN offset
1284 to LST has been measured by TL1. "-1" for an unknown off value.
1285 [Meaning]: sub frame number offset between target cell and LST.*/
1286 kal_int32 tm; /*[Range]: (-1~6400*8-1). (0~6400*8-1) for a cell whose sub-frame
1287 boundary offset has been measured by TL1. "-1" for an unknown tm value.
1288 [Meaning]: sub frame boundary offset between target cell and LST.*/
1289 kal_uint8 iscp_timeslot_bitmap; /*[Meaning]: the bitmap indicate which slots' iscp have been measured.
1290 Bit x represents timeslot x. 0<= x <=6*/
1291 kal_int16 iscp[TDD_MAX_TIMESLOT_PER_SUBFRAME]; /*ISCP range. -480 ~ -100 means (-120 ~ -25 )dBm in 0.25 dB step*/
1292} TDD_measured_cell_T;
1293
1294//#ifdef __UMTS_R9__
1295typedef enum _TDD_higher_prio_search_support_E
1296{
1297 TDD_REGULAR_MEAS_ONLY = 0, /*The cell should be measured according to regular period.*/
1298 TDD_HIGHER_PRIORITY_ONLY, /*The cell should be measured according to higher priority search period.*/
1299 TDD_HIGHER_PRIORITY_AND_REGULAR_MEAS /*The cell should be measured according to both higher priority search period and regular period.*/
1300} TDD_higher_prio_search_support_E;
1301//#endif
1302typedef struct _TDD_cell_info_list_T
1303{
1304 kal_uint16 freq_uarfcn; /*Cell's frequency uarfcn.*/
1305 kal_uint16 cell_param_id; /*[Range]: 0-127, 0xFF,
1306 [Meaning]:Cell parameter ID,0xFF means unknown cell parameters id.*/
1307//#ifdef __UMTS_R9__
1308 TDD_higher_prio_search_support_E prio_search_control; /*Indicate measurement type*/
1309//#endif
1310 kal_bool sctd; /*True/False. True: sctd is applied on this cell's P-CCPCH.
1311 False: sctd is not applied on this cell's P-CCPCH.*/
1312 kal_bool tstd; /*True/False. True: tstd is applied on this cell's P-CCPCH.
1313 False: tstd is not applied on this cell's P-CCPCH.*/
1314 kal_int16 ref_timing; /*[Range ]: -1 ~ 12800-1, -1 means unknown timing
1315 [Meaning]: Cell boundary*/
1316 kal_bool ref_timing_sib; /*Indicate if the reference timing comes from SIB11 or Meas. Control.
1317 True: this timing info is from SIB*/
1318 kal_int32 tm; /*[Range ]: -1 ~ 6400*8-1 , -1 means unknown timing
1319 [Meaning]: Sub Frame boundary offset between target cell and LST*/
1320 kal_int16 off; /*[Range]: -1 ~ 8191, -1 means unknown timing
1321 [Meaning]: Subframe SFN offset between target cell and LST.*/
1322 kal_uint8 iscp_timeslot_bitmap; /*[Meaning]: Bitmap of timeslot for iscp measurement, valid only for DL slots.£I
1323 if bit x is 1, iscp measurement should be carried on slot x. 0<=x <= 6*/
1324#ifdef __HSUPA_SUPPORT__
1325 kal_bool intra_sec_freq_indicator; /*True/False. True: this cell has configured a secondary frequency on the same frequency as UE working carrier.
1326 False: this cell hasn't configured an intra-secondary frequency.*/
1327 kal_uint8 pccpch_tx_power; /*[Range]: 6 ~ 43 by step 1 in dBm
1328 [Meaning]:P-CCPCH transmit power*/
1329#endif
1330}TDD_cell_info_list_T;
1331
1332typedef enum _TDD_meas_act_E
1333{
1334 TDD_STOP_MEAS = 0, /*stop measurement.*/
1335 TDD_START_MEAS_NEW_CIL = 3, /*start measurement if measurement is stopped and update CIL*/
1336 TDD_START_MEAS_NEW_CIL_NEW_FMO = 7 /*start measurement if measurement is stopped and
1337 update both CIL and FMO.*/
1338 ,TDD_START_MEAS_NEW_PRIO_INFO = 9
1339
1340} TDD_meas_act_E;
1341
1342
1343typedef struct _TDD_preferred_cell_list_T
1344{
1345 kal_uint8 uarfcn_index;
1346 kal_uint16 cell_param_id;
1347} TDD_preferred_cell_list_T;
1348
1349
1350typedef struct _TDD_fach_pch_info_T
1351{
1352 kal_uint16 cell_param_id; /*cell parameter ID, range:0-127*/
1353 kal_bool sctd; /*TRUE:sctd is applied on this cell's P-CCPCH,
1354 FALSE:sctd is not applied on this cell's P-CCPCH*/
1355 kal_bool tstd; /*TRUE:tstd is applied on this cell's P-CCPCH,
1356 FALSE:tstd is not applied on this cell's P-CCPCH*/
1357 kal_int16 rscp; /*serving cell rscp, range:-500 - -100 means (-125 - -25)dBm
1358 in 0.25dB step*/
1359 TDD_sccpch_info_T sccpch_info; /*physical channel info for PCH/FACH to be carried over*/
1360 kal_uint16 tfc_num; /*number of tfc in attached tfcs[]*/
1361 TDD_dl_tfc_T tfcs[TDD_MAX_DL_TFC]; /*tfcs info for this sccpch*/
1362 kal_uint8 active_dl_trch_list; /*To represent active TRCHs by bit string. The MSB represents the
1363 lowest numbered trch index, and so on in descending bit significance
1364 and increasing numerical order.'1' represents for active channel,'0' for inactive
1365 channel which decoding is not required.For CPHY_PCH_SETUP_REQ, the
1366 number of bits which are set to ¡®1¡¯ should be equal to 1.
1367 Namely, only 1 trch is activated. For CPHY_FACH_SETUP_REQ, indicate all
1368 the trch multiplexed on this S-CCPCH.*/
1369 kal_uint8 trch_num; /*number of trch in trch_list[TDD_MAXFACHPCH]*/
1370 TDD_dl_fachpch_trch_T trch_list[TDD_MAXFACHPCH];
1371 TDD_pich_info_T pich_info; /*pich info*/
1372} TDD_fach_pch_info_T;
1373
1374typedef enum _TDD_num_uppch_subchannel_size_E
1375{
1376 TDD_NUM_UPPCH_SUBCH_1 = 1,
1377 TDD_NUM_UPPCH_SUBCH_2 = 2,
1378 TDD_NUM_UPPCH_SUBCH_4 = 4,
1379 TDD_NUM_UPPCH_SUBCH_8 = 8
1380} TDD_num_uppch_subchannel_size_E;
1381
1382typedef struct _TDD_asc_info_T
1383{
1384 kal_uint8 sync_ul_bitmap; /*available sync_ul for this asc*/
1385 TDD_num_uppch_subchannel_size_E num_subchannel_size; /*[Range]: 1,2,4,8
1386 [Meaning]:Number of uppch subchannel in cell */
1387 kal_uint16 subchannel_bitmap; /*Bit map of uppch subchannel
1388 bit0 indicate the first subchannel
1389 bit1 indicate the second subchannel
1390 bit (num_subchannel -1) indicates num_subchannelth subchannel.
1391 At most 8 uppch sub channels defined <3GPP-TS25.331-v7.10.0:10.3.6.6>.
1392 The low 8 bit will be used.*/
1393} TDD_asc_info_T;
1394
1395typedef enum _TDD_ccode_lcr_E
1396{
1397 TDD_cc1_1 = 0, /*The index of 1st channelization code of SF=1*/
1398 TDD_cc2_1, /*The index of 1st channelization code of SF=2*/
1399 TDD_cc2_2, /*The index of 2nd channelization code of SF=2*/
1400 TDD_cc4_1, /*The index of 1st channelization code of SF=4*/
1401 TDD_cc4_2, /*The index of 2nd channelization code of SF=4*/
1402 TDD_cc4_3, /*The index of 3rd channelization code of SF=4*/
1403 TDD_cc4_4, /*The index of 4th channelization code of SF=4*/
1404 TDD_cc8_1, /*The index of 1st channelization code of SF=8*/
1405 TDD_cc8_2, /*The index of 2nd channelization code of SF=8*/
1406 TDD_cc8_3, /*The index of 3rd channelization code of SF=8*/
1407 TDD_cc8_4, /*The index of 4th channelization code of SF=8*/
1408 TDD_cc8_5, /*The index of 5th channelization code of SF=8*/
1409 TDD_cc8_6, /*The index of 6th channelization code of SF=8*/
1410 TDD_cc8_7, /*The index of 7th channelization code of SF=8*/
1411 TDD_cc8_8, /*The index of 8th channelization code of SF=8*/
1412 TDD_cc16_1, /*The index of 1st channelization code of SF=16*/
1413 TDD_cc16_2, /*The index of 2nd channelization code of SF=16*/
1414 TDD_cc16_3, /*The index of 3rd channelization code of SF=16*/
1415 TDD_cc16_4, /*The index of 4th channelization code of SF=16*/
1416 TDD_cc16_5, /*The index of 5th channelization code of SF=16*/
1417 TDD_cc16_6, /*The index of 6th channelization code of SF=16*/
1418 TDD_cc16_7, /*The index of 7th channelization code of SF=16*/
1419 TDD_cc16_8, /*The index of 8th channelization code of SF=16*/
1420 TDD_cc16_9, /*The index of 9th channelization code of SF=16*/
1421 TDD_cc16_10, /*The index of 10th channelization code of SF=16*/
1422 TDD_cc16_11, /*The index of 11th channelization code of SF=16*/
1423 TDD_cc16_12, /*The index of 12th channelization code of SF=16*/
1424 TDD_cc16_13, /*The index of 13th channelization code of SF=16*/
1425 TDD_cc16_14, /*The index of 14th channelization code of SF=16*/
1426 TDD_cc16_15, /*The index of 15th channelization code of SF=16*/
1427 TDD_cc16_16 /*The index of 16th channelization code of SF=16*/
1428}TDD_ccode_lcr_E;
1429
1430
1431/*prach resource info*/
1432typedef struct _TDD_prach_resource_info_T
1433{
1434 kal_uint8 timeslot; /*prach timeslot number*/
1435 TDD_midamble_info_T midamble; /*Midamble information*/
1436 kal_uint8 code_num; /*number of prach code*/
1437 TDD_ccode_lcr_E prach_code_list[4] ; /*prach channel code list*/
1438
1439}TDD_prach_resource_info_T ;
1440
1441typedef enum _TDD_dch_setup_msg_type_E
1442{
1443 TDD_DCH_SETUP = 0, /* The setup request is used when dch is established in the first time. */
1444 TDD_DCH_TRHHO, /* The setup request is to perform timing-reinitialized hard handover.*/
1445 TDD_DCH_TRHHO_REVERT, /* The setup request is to perform timing-reinitialized hard handover revert.*/
1446 TDD_DCH_TMHHO, /* The modify request is to perform timing-maintained hard handover. */
1447 TDD_DCH_TMHHO_REVERT, /* The modify request is to perform timing-maintained hard handover revert. */
1448 TDD_DCH_IRAT_REVERT, /* The setup request is to perform inter-RAT hand over revert.*/
1449 TDD_DCH_TRBHO, /*timing-reinitialized baton handover*/
1450 TDD_DCH_TRBHO_REVERT, /*The setup request is to perform timing-reinitialized baton handover revert*/
1451 TDD_DCH_TMBHO, /*timing- maintained baton handover*/
1452 TDD_DCH_TMBHO_REVERT /*The setup request is to perform timing- maintained baton handover revert. */
1453} TDD_dch_setup_msg_type_E;
1454
1455typedef struct _TDD_hssich_info_T
1456{
1457 kal_uint8 ts_num; /*[rang]: 0 ~ 6 [meaning]:The number of time slot in which
1458 HS-SICH is allocated.*/
1459 TDD_ccode_lcr_E ccode; /*[range]:15~30, the channelization code of HS-SICH*/
1460 TDD_midamble_info_T midamble_info; /*Midamble info for HS-SICH*/
1461
1462 kal_int8 ack_nack_power_offset; /*[Range]: -7~8 [Meaning]:the power offset of HS-SICH when sending ACK. */
1463 kal_int8 power_level; /*[Range]: -120~ -58 [Meaning]:Desired HS-SICH RX power at the cell's receiver in dBm*/
1464 kal_uint8 tpc_step; /*[Rang]: 1,2,3. The transmission power control step size.*/
1465} TDD_hssich_info_T;
1466
1467typedef struct _TDD_hsscch_config_T
1468{
1469 kal_uint8 ts_num; /*The number of time slot in which HS-SCCH is allocated.*/
1470 TDD_ccode_lcr_E first_ccode; /*The first channelization code of HS-SCCH*/
1471 TDD_ccode_lcr_E second_ccode; /*The second channelization code of HS-SCCH*/
1472 TDD_midamble_info_T midamble_info; /*Midamble info for HS-SCCH*/
1473 TDD_hssich_info_T hssich_info; /*The information of HS_SICH*/
1474} TDD_hsscch_config_T;
1475
1476typedef struct _TDD_hsscch_info_T
1477{
1478 kal_uint8 num_hsscch; /*The number of hs-scch*/
1479 TDD_hsscch_config_T hsscch_config[TDD_MAX_HSSCCH_NUM]; /*Physical channel config of HS-SCCH & HS-SICH.*/
1480 kal_int8 hsscch_bler_target; /*[Range]: -63 ~ 0, -64. [Meaning]: multiply the value of this IE with 0.05 to get the real value.
1481 (Real BLER: -3.15~0 = log10 (BLER)). -64 is used for invalid value.*/
1482 kal_uint8 hssich_power_ctrl_gap; /*[Range]: 1 ~ 255. [default]: 1 [Meaning]: number of subframes as the threshold of
1483 hssich gap power control.*/
1484 kal_bool path_loss_compensation; /*TRUE: UE shall perform the pathloss compensation for HS-SICH power control
1485 when HS-SICH transmission gap is less than "Power Control GAP".
1486 FALSE: UE shall not consider the pathloss compensation for HS-SICH power control.
1487 Default: FALSE.*/
1488
1489 kal_uint8 hs_scch_tpc_size; /* [Rang]: 1,2,3 the transmission power control step size.*/
1490
1491} TDD_hsscch_info_T;
1492
1493typedef struct _TDD_hs_harq_info_T
1494{
1495 kal_uint8 process_num; /*[Rang]: 1 ~ 8. The number of HARQ process.*/
1496 kal_bool explicit_partition; /*TRUE indicates explicit memory partition. FALSE indicates implicit memory partition*/
1497 kal_uint8 process_mem_size[TDD_MAX_HARQ_PROCESS_NUM]; /*[Range] 0~60. Index of HARQ memory size. range: 0~60. Only valid when memory partition is explicit*/
1498} TDD_hs_harq_info_T;
1499
1500typedef struct _TDD_hs_queue_config_T
1501{
1502 kal_uint8 queue_id; /*Queue identifier of this MAC-hs PDU*/
1503 kal_uint8 bit_offset; /*Heading bit offset for each TB: 0 or 4 bits*/
1504 kal_uint8 num_size; /*Number of valid size[] and size_index[]*/
1505 kal_uint16 size[TDD_MAX_HSDSCH_SIZE]; /*Configured size list*/
1506 kal_uint8 size_index[TDD_MAX_HSDSCH_SIZE]; /*Configured size index list*/
1507
1508} TDD_hs_queue_config_T;
1509
1510typedef struct _TDD_hs_queue_info_T
1511{
1512 kal_uint8 num_queue; /*Number of configured MAC-hs queues*/
1513 TDD_hs_queue_config_T queue_config[TDD_MAX_HSDSCH_QUEUE]; /*MAC-hs Queue Information*/
1514} TDD_hs_queue_info_T;
1515
1516typedef struct _TDD_hsdsch_size_info_T
1517{
1518 kal_uint16 tb_size; /*Size of each TB in bits*/
1519 kal_uint8 num_tb; /*Number of TB with the same size*/
1520} TDD_hsdsch_size_info_T;
1521
1522
1523typedef enum
1524{
1525 TDD_DSCH_NO_HRNTI_DETECTED = 0, /*HS-SCCH CRC check is failed*/
1526 TDD_DSCH_D_HRNTI_DETECTED = 1, /*HS-PDSCH is indicated by HS-SCCH with dH-RNTI*/
1527 TDD_DSCH_C_HRNTI_DETECTED = 2, /*HS-PDSCH is indicated by HS-SCCH with cH-RNTI*/
1528 TDD_DSCH_B_HRNTI_DETECTED = 3, /*HS-PDSCH is indicated by HS-SCCH with bH-RNTI*/
1529 TDD_DSCH_HRNTI_LESS = 4, /*HS-PDSCH is decoded blindly without HS-SCCH */
1530 //DSCH_NOT_RECEIVE = 5, /*This subframe is not received by HW */
1531
1532} TDD_hs_dsch_decode_hrnti_E;
1533
1534typedef struct _TDD_hsdsch_data_T
1535{
1536 kal_bool is_valid_data; /*Indicate MAC-hs PDU is valid (CRC right) or not.*/
1537 kal_uint8 queue_id; /*Queue identifier of this MAC-hs PDU*/
1538 kal_uint8 tsn; /*TSN of this MAC-hs PDU*/
1539 kal_uint8 num_size_info; /*Number of valid size_info*/
1540 TDD_hsdsch_size_info_T size_info[TDD_MAX_HSDSCH_SIZE]; /*Decoded combination of SID and N*/
1541 kal_uint16 num_data; /*The size in byte of the buffer containing the data. It is the exact
1542 size of data, including the byte for TB number.*/
1543
1544 kal_uint16 EMI_buffer_index;
1545
1546 kal_uint8* data; /*The buffer contains data for each TB received in this MAC-hs PDU. This buffer
1547 is allocated by TL1, and freed by PS. The buffer is from ADM. The first byte in the
1548 data indicates the number of TB in this data indication.*/
1549
1550 TDD_hs_dsch_decode_hrnti_E decode_hrnti; /*[R8] H-RNTI dectected info*/
1551 kal_bool ndi; /*true:new decoded data; false:old decoded data.*/
1552 kal_uint16 tb_size; /*Indicated the size of each TB*/
1553
1554 kal_int8 pi_repeat_cycle; /* -1:invalid, -2:retransmission with CRC pass, 1~20:valid pi_repeat_cyle */
1555} TDD_hsdsch_data_T;
1556
1557/*ul_sync/rach/erucch struct*/
1558typedef struct _TDD_random_access_info_T
1559{
1560 kal_uint16 uarfcn; /*For cphy_dch_setup_req, this is fpach uarfcn for HHO, others, this field is working uarfcn.E */
1561 kal_uint8 pccpch_tx_power; /*[Range]: 6 ~ 43 by step 1 in dBm
1562 [Meaning]:P-CCPCH transmit power*/
1563 kal_int8 max_tx_power; /*Range]: -50 ~ 33 dBm
1564 [Meaning]: Max. allowed TX power.*/
1565 kal_int8 umts_power_class; /*UE capability(in dBm)
1566 The value's unit configured by SLCE is dBm.
1567 define MAX_OUTPUT_POWER_CLASS_1 33 :+33dBm
1568 define MAX_OUTPUT_POWER_CLASS_2 24 : +24dBm
1569 define MAX_OUTPUT_POWER_CLASS_3 21 : +21dBm
1570 define MAX_OUTPUT_POWER_CLASS_4 27 : +27dBm */
1571 kal_bool sync_param_ind; /*True: The following parameters exist,False: The following parameter does not exist.
1572 For cphy_dch_setup_req only. In case of HHO, the related fileds must be valid.*/
1573 kal_uint8 sync_ul_bitmap; /*sync ul code bitmap,For cphy_dch_setup_req only.*/
1574 kal_uint8 num_asc; /*valid asc number in asc[], 1-8*/
1575 TDD_asc_info_T asc[TDD_MAX_ASC];
1576 kal_uint8 num_prach_fpach; /*[Range]: 1- TDD_MAX_PRACH_FPACH_NUM
1577 [Meaning]: number of fpach-PRACH pair.*/
1578 TDD_prach_resource_info_T prach_list[TDD_MAX_PRACH_FPACH_NUM];
1579 TDD_fpach_info_T fpach_list[TDD_MAX_PRACH_FPACH_NUM]; /*fpach info for this UE*/
1580 kal_int8 prx_uppch_des; /*[-120, -58] by step 1 in dBm.UpPCH expected receive power at NodeB, */
1581 kal_uint8 power_ramp_step; /*0 - 3, in dB,power ramp step */
1582 TDD_max_retrans_E max_retrans; /*1,2, 4, or 8,max retrans times in one power ramping procedure*/
1583 kal_uint8 uppch_shift; /*0 - 127, Default: 0,UpPCH shifting position in a cell,
1584 UpPCH position = UpPTS position + uppch_shift*16*/
1585}TDD_random_access_info_T;
1586
1587#ifdef __HSUPA_SUPPORT__
1588
1589typedef enum _TDD_edch_t_wait_E
1590{
1591 TDD_EDCH_T_WAIT_TIMER_EVERY_TTI = 0,
1592 TDD_EDCH_T_WAIT_TIMER_40MS,
1593 TDD_EDCH_T_WAIT_TIMER_80MS,
1594 TDD_EDCH_T_WAIT_TIMER_160MS,
1595 TDD_EDCH_T_WAIT_TIMER_320MS,
1596 TDD_EDCH_T_WAIT_TIMER_640MS,
1597 TDD_EDCH_T_WAIT_TIMER_1000MS,
1598 TDD_EDCH_T_WAIT_TIMER_2000MS
1599} TDD_edch_t_wait_E;
1600
1601typedef enum _TDD_edch_t_rucch_E
1602{
1603 TDD_EDCH_T_RUCCH_TIMER_20MS = 0,
1604 TDD_EDCH_T_RUCCH_TIMER_40MS,
1605 TDD_EDCH_T_RUCCH_TIMER_60MS,
1606 TDD_EDCH_T_RUCCH_TIMER_80MS,
1607 TDD_EDCH_T_RUCCH_TIMER_120MS,
1608 TDD_EDCH_T_RUCCH_TIMER_160MS,
1609 TDD_EDCH_T_RUCCH_TIMER_200MS,
1610 TDD_EDCH_T_RUCCH_TIMER_240MS,
1611 TDD_EDCH_T_RUCCH_TIMER_280MS,
1612 TDD_EDCH_T_RUCCH_TIMER_320MS,
1613 TDD_EDCH_T_RUCCH_TIMER_400MS,
1614 TDD_EDCH_T_RUCCH_TIMER_500MS,
1615 TDD_EDCH_T_RUCCH_TIMER_600MS,
1616 TDD_EDCH_T_RUCCH_TIMER_800MS,
1617 TDD_EDCH_T_RUCCH_TIMER_1000MS,
1618 TDD_EDCH_T_RUCCH_TIMER_2000MS
1619} TDD_edch_t_rucch_E;
1620
1621/*E-AGCH Physical Channel Configuration, <3GPP-TS25.331:10.3.6.100>*/
1622typedef struct _TDD_eagch_config_T
1623{
1624 kal_uint8 ts_num; /*[Range]: 0 ~ 6.The number of time slot in which E-AGCH is llocated.*/
1625 TDD_ccode_lcr_E first_ccode; /*The first channelization code of E-AGCH.*/
1626 TDD_ccode_lcr_E second_ccode; /*The second channelization code of E-AGCH.*/
1627 TDD_midamble_info_T midamble_info; /*Midamble info for E-AGCH.*/
1628} TDD_eagch_config_T;
1629
1630/*E-AGCH Informtion, <3GPP-TS25.331:10.3.6.100>*/
1631typedef struct _TDD_eagch_info_T
1632{
1633 kal_bool rdi_indicator; /*TRUE: RDI is present in E-AGCH block.
1634 FALSE: RDI is absent in E-AGCH block.*/
1635 kal_uint8 tpc_step; /*[Range]: 1,2,3. The transmission power control step size.*/
1636 kal_int8 bler_target; /*[Range]: -63 ~ 0, -64
1637 [Meaning]: multiply the value of this IE with 0.05 to get the real value.
1638 (Real BLER: -3.15~0 = log10 (BLER)). -64 is used for invalid value.*/
1639 kal_uint8 num_eagch; /*[Range]: 1 ~ 4
1640 [Meaning]: The number of configured E-AGCH.*/
1641 TDD_eagch_config_T eagch_config[TDD_MAX_EAGCH_NUM];/*Physical channel config of E-AGCH.*/
1642} TDD_eagch_info_T;
1643
1644/*E-HICH Physical Channel Configuration, <3GPP-TS25.331:10.3.6.100>*/
1645typedef struct _TDD_ehich_config_T
1646{
1647 kal_uint8 ei; /*[range]: 0~3.
1648 [meaning]: The E-HICH identifier to match the EI field in E-AGCH.
1649 [notes]: 255 for non-scheduled E-HICH.*/
1650 kal_uint8 ts_num; /*[range]: 0 ~ 6.
1651 [meaning]:The number of time slot in which E-HICH is allocated.*/
1652 TDD_ccode_lcr_E ccode; /*[range]:15~30.
1653 [meaning]: the channelization code of E-HICH.*/
1654 TDD_midamble_info_T midamble_info; /*Midamble info for E-HICH*/
1655} TDD_ehich_config_T;
1656
1657/*E-HICH Informtion, <3GPP-TS25.331:10.3.6.101>*/
1658typedef struct _TDD_ehich_info_T
1659{
1660 kal_uint8 n_e_hich; /*[range]: 4~15.
1661 [meaning]: Minumum number of slots betwen start last active E-DCH TTI and start of ACK/NACK on E-HICH.*/
1662 kal_uint8 num_ehich; /*[range]: 1~4
1663 [meaning]: The number of configured E-HICH.*/
1664 TDD_ehich_config_T ehich_config[TDD_MAX_EHICH_NUM];/*Physical channel config of E-HICH.*/
1665} TDD_ehich_info_T;
1666
1667
1668/*E-DCH Scheduled Informtion, <3GPP-TS25.331:10.3.6.100/101/103>*/
1669typedef struct _TDD_edch_sched_info_T
1670{
1671
1672 TDD_eagch_info_T eagch_info; /*E-AGCH Information*/
1673 TDD_ehich_info_T ehich_info; /*E-HICH Information*/
1674 TDD_random_access_info_T erucch_info; /*E-RUCCH Information*/
1675 TDD_edch_t_wait_E t_wait; /*E-AGCH monitoring delay after last scheduled grant received*/
1676 TDD_edch_t_rucch_E t_rucch; /*E-AGCH monitoring duration after successful E-RUCCH performed*/
1677} TDD_edch_sched_info_T;
1678
1679/*E-DCH Non-Scheduled Granting Informtion, <3GPP-TS25.331:10.3.6.41c>*/
1680typedef struct _TDD_edch_non_sched_grant_info_T
1681{
1682 kal_uint8 trri; /*Timeslot Resource Related Information, bitmap of assigned timeslots.
1683 Bit0-TS5, Bit1-TS4, Bit2-TS3, Bit3-TS2,Bit4-TS1.*/
1684 kal_uint8 prri; /*[range]: 1~32, i.e. -12dB~19dB, in step of 1dB.
1685 [meaning]: Power Resource Related Information*/
1686 TDD_ccode_lcr_E crri; /*Assigned channelisation code*/
1687 kal_uint8 repeat_offset; /*[Meaning]: non-schedule E-PUCH resource allocation starting point in subframe.
1688 [Range]: [0, (repeat_period - 1)]*/
1689 TDD_repeat_period_E repeat_period; /*[range]: 1, 2, 4, 8, 16, 32, 64, in TTI. 1 means continuous allocation.
1690 [meaning]: Physical channel resource allocation period.*/
1691 kal_uint8 repeat_length; /*[range]: 1~(RepeatPeriod - 1), in TTI.
1692 [meaning]: Physical channel resource allocation length.*/
1693} TDD_edch_non_sched_grant_info_T;
1694
1695/*E-DCH Non-Scheduled Transmission Informtion, <3GPP-TS25.331:10.3.6.41c>*/
1696typedef struct _TDD_edch_non_sched_info_T
1697{
1698 kal_uint8 n_e_ucch; /*[range]: 1~8.
1699 [meaning]: Number of E-UCCH and TPC instances within an non-scheduled E-DCH TTI.*/
1700 kal_uint8 n_e_hich; /*[range]: 4~15.
1701 [meaning]: Minumum number of slots betwen start last active E-DCH TTI and start of ACN/NACK on E-HICH.*/
1702 kal_uint8 ehich_sigature_group_index; /*[range]: 0~19.
1703 [meaning]: which signature sequence group index to use.*/
1704 TDD_ehich_config_T ehich_config; /*E-HICH Physical Channel Information*/
1705 TDD_edch_non_sched_grant_info_T edch_non_sched_grant; /*Non-Scheduled transmission grant information.*/
1706} TDD_edch_non_sched_info_T;
1707
1708/*E-DCH E-TFCS Definitions, <3GPP-TS25.331:10.3.6.105>*/
1709typedef struct _TDD_edch_etfcs_T
1710{
1711 kal_uint8 num_ref_qpsk; /*[Range]: 2 ~ 8
1712 Number of reference beta information for QPSK.
1713 [notes]: as CCSA-2009-060Q, 2~8 is correct.*/
1714 kal_uint8 ref_code_rate_qpsk[TDD_MAX_REF_BETA_NUM]; /*[Range]: 0 ~ 10, which means 0 ~ 1 in step of 0.1
1715 List of configured reference code rate for QPSK.*/
1716 kal_int8 ref_beta_qpsk[TDD_MAX_REF_BETA_NUM]; /*[Range]: -15 ~ 16, whose unit is dB.
1717 List of configured reference beta for QPSK.*/
1718 kal_uint8 num_ref_16qam; /*[Range]: 2 ~ 8
1719 Number of reference beta information for 16QAM.
1720 [notes]: as CCSA-2009-060Q, 2~8 is correct.*/
1721 kal_uint8 ref_code_rate_16qam[TDD_MAX_REF_BETA_NUM]; /*[Range]: 0 ~ 10, which means 0 ~ 1 in step of 0.1
1722 List of configured reference code rate for QPSK.*/
1723 kal_int8 ref_beta_16qam[TDD_MAX_REF_BETA_NUM]; /*[Range]: -15 ~ 16, whose unit is dB.
1724 List of configured reference beta for QPSK.*/
1725
1726} TDD_edch_etfcs_T;
1727
1728
1729/*E-PUCH Timeslot Information, <3GPP-TS25.331:10.3.6.104>*/
1730typedef struct _TDD_epuch_timeslot_info_T
1731{
1732 kal_uint8 ts_num; /*[range]: 0 ~ 6.
1733 [meaning]:The number of time slot in which E-HICH is allocated.*/
1734 TDD_midamble_info_T midamble_info; /*Midamble info for E-HICH*/
1735} TDD_epuch_timeslot_info_T;
1736
1737/*SNPL Report Type, <3GPP-TS25.331:10.3.6.104>*/
1738typedef enum _TDD_snpl_report_type_E
1739{
1740 TDD_SNPL_TYPE_1 = 0,
1741 TDD_SNPL_TYPE_2,
1742 TDD_SNPL_TYPE_INVALID
1743} TDD_snpl_report_type_E;
1744
1745/*E-PUCH Information, <3GPP-TS25.331:10.3.6.104>*/
1746typedef struct _TDD_epuch_info_T
1747{
1748 TDD_snpl_report_type_E snpl_report_type; /*SNPL report type.*/
1749 TDD_edch_etfcs_T etfcs; /*E-TFCS information. <3GPP-TS25.331:10.3.6.105>*/
1750 kal_int8 prx_base_des; /*[range]: -112~-50, in step of 1dBm.
1751 [meaning]: Expected Pe-base.*/
1752 kal_bool beacon_pl_est; /*TRUE: UE may take into account pathloss estimated from beacon function physical channels.
1753 FALSE: UE shall not take into account pathloss estimation.*/
1754 kal_uint8 tpc_step; /*[range]: 1,2,3. The transmission power control step size.*/
1755 kal_uint8 pebase_pc_gap; /*[range]: 1~255, in sub-frames.
1756 [meaning]: Gap of open-loop power control during closed-loop entered.*/
1757 kal_uint8 sync_step; /*1 - 8, in 1/8 chip,Uplink synchronization step size.*/
1758 kal_uint8 sync_freq; /*1 - 8, in sub-frame,Uplink synchronization frequencies, */
1759 kal_uint8 min_allowed_code_rate; /*[range]: 0~63, in step of 0.015, i.e. 0.055~1.000.
1760 [meaning]: Minimum allowed code rate during E-TFC procedure-2.*/
1761 kal_uint8 max_allowed_code_rate; /*[range]: 0~63, in step of 0.015, i.e. 0.055~1.000.
1762 [meaning]: Maximum allowed code rate during E-TFC procedure-2.*/
1763 kal_uint8 num_epuch_timeslot; /*[range]: 1~5.
1764 [meaning]: number of E-PUCH timeslots.*/
1765 TDD_epuch_timeslot_info_T epuch_timeslot_list[TDD_MAX_UL_TIMESLOT_PER_SUBFRAME];/*E-PUCH timeslot info list*/
1766 kal_uint8 pccpch_tx_power; /*[Range]: 6 ~ 43 by step 1 in dBm
1767 [Meaning]:P-CCPCH transmit power*/
1768 kal_int8 max_tx_power; /*[Range]: -50 ~ 33 dBm
1769 [Meaning]: Max. allowed TX power.*/
1770 kal_int8 umts_power_class; /*UE capability(in dBm)
1771 The value's unit configured by SLCE is dBm.
1772 define MAX_OUTPUT_POWER_CLASS_1 33 :+33dBm
1773 define MAX_OUTPUT_POWER_CLASS_2 24 : +24dBm
1774 define MAX_OUTPUT_POWER_CLASS_3 21 : +21dBm
1775 define MAX_OUTPUT_POWER_CLASS_4 27 : +27dBm */
1776} TDD_epuch_info_T;
1777
1778/*E-DCH HARQ RV Configuration, <3GPP-TS25.331:10.3.5.7d>*/
1779typedef enum _TDD_edch_rv_config_E
1780{
1781 TDD_EDCH_RV0 = 0,
1782 TDD_EDCH_RVTABLE
1783} TDD_edch_rv_config_E;
1784
1785/*E-DCH HARQ Information, <3GPP-TS25.331:10.3.5.7d>*/
1786typedef struct _TDD_edch_harq_info_T
1787{
1788 TDD_edch_rv_config_E edch_rv_config; /*RV configuration*/
1789} TDD_edch_harq_info_T;
1790
1791
1792
1793/* [R8] Specify that E-DCH transmission is in dedicated state or common state */
1794typedef enum _TDD_edch_transmission_type_E
1795{
1796 TDD_EDCH_IN_DCH_STATE = 0, /* E-DCH allocated in dedicated state */
1797 TDD_EDCH_IN_COMMON_STATE /* E-DCH allocated in common state */
1798}TDD_edch_transmission_type_E;
1799
1800/*****common EDCH info*****/
1801typedef struct _TDD_common_e_rnti_info_T
1802{
1803 kal_uint16 starting_e_rnti; /*indicating the starting ERNTI related to one certain ERUCCH*/
1804 kal_uint8 number_group; /*Indicates the number of common E-RNTI groups related to the E-RUCCH*/
1805 kal_uint8 number_e_rnti_per_group; /*Indicates the number of common E-RNTIs per group*/
1806}TDD_common_e_rnti_info_T;
1807
1808#if 0
1809/* under construction !*/
1810/* under construction !*/
1811/* under construction !*/
1812/* under construction !*/
1813/* under construction !*/
1814/* under construction !*/
1815/* under construction !*/
1816/* under construction !*/
1817/* under construction !*/
1818/* under construction !*/
1819/* under construction !*/
1820#endif
1821
1822typedef struct _TDD_common_edch_info_T
1823{
1824 /*ccch_trans_info_T ccch_trans_info; CCCH transmission configuration for CELL_FACH on Prim-freq and Secondary-freq*/
1825 kal_uint8 common_e_rnti_num;
1826 TDD_common_e_rnti_info_T common_e_rnti_info[TDD_MAX_ERUCCH];
1827}TDD_common_edch_info_T;
1828/*****common EDCH info*****/
1829
1830
1831/*****DRX related definitions*****/
1832/*DRX cycle length k, real DRX cycle = 2^k*/
1833typedef enum _TDD_ctrl_ch_drx_cycle_E
1834{
1835 TDD_drx_cycle_1 = 0,
1836 TDD_drx_cycle_2,
1837 TDD_drx_cycle_4,
1838 TDD_drx_cycle_8,
1839 TDD_drx_cycle_16,
1840 TDD_drx_cycle_32,
1841 TDD_drx_cycle_64
1842}TDD_ctrl_ch_drx_cycle_E;
1843
1844/*subframe, use as EAGCH inactivity monitor threshold*/
1845typedef enum _TDD_agch_drx_inact_TrHd_E
1846{
1847 TDD_drx_inaTrHd_0 = 0,
1848 TDD_drx_inaTrHd_1,
1849 TDD_drx_inaTrHd_2,
1850 TDD_drx_inaTrHd_4,
1851 TDD_drx_inaTrHd_8,
1852 TDD_drx_inaTrHd_16,
1853 TDD_drx_inaTrHd_32,
1854 TDD_drx_inaTrHd_64,
1855 TDD_drx_inaTrHd_128,
1856 TDD_drx_inaTrHd_256,
1857 TDD_drx_inaTrHd_512,
1858 TDD_drx_inaTrHd_spare5, /*Add spare value*/
1859 TDD_drx_inaTrHd_spare4,
1860 TDD_drx_inaTrHd_spare3,
1861 TDD_drx_inaTrHd_spare2, /*Add spare value*/
1862 TDD_drx_inaTrHd_infinity
1863}TDD_agch_drx_inact_TrHd_E;
1864
1865typedef struct _TDD_eagch_drx_info_T
1866{
1867 TDD_ctrl_ch_drx_cycle_E eagch_drx_cycle; /*DRX cycle = 2^k, k=0~6.*/
1868 //kal_bool eagch_inact_TrHd_valid;
1869 TDD_agch_drx_inact_TrHd_E eagch_inact_TrHd; /*subframe, use as EAGCH inactivity monitor threshold*/
1870 kal_uint8 eagch_drx_offset; /*integer[0~63], subframe, offset of E-AGCH DRX cycle*/
1871}TDD_eagch_drx_info_T;
1872/*****DRX related definitions*****/
1873
1874
1875/*****SPS info related definitions*****/
1876typedef struct _TDD_trans_pattern_info_T
1877{
1878 kal_uint8 repet_period; /*repetition period: 1, 2, 4, 8, 16, 32 subframe*/
1879 kal_uint8 repet_length; /*repetition length: 1~repet_period-1*/
1880}TDD_trans_pattern_info_T;
1881
1882typedef struct _TDD_init_sps_edch_info_T
1883{
1884 kal_uint8 n_eucch;
1885 TDD_ccode_lcr_E ccode; /*indicating which CH codes used for EDCH on SPS resources*/
1886 kal_uint8 trri; /*Bit1: TS1, Bit2: TS2, ..., Bit5: Ts5.
1887 Bit5 indicating the rightmost bit*/
1888 kal_uint8 prri;
1889 kal_uint8 active_time;
1890 kal_uint8 subframe_num; /*0, 1; indicating activite on which subframe in one radio frame*/
1891 kal_uint8 init_tx_pattern_idx; /*0 ~ maxEDCHTxPattern-TDD128 - 1*/
1892}TDD_init_sps_edch_info_T;
1893
1894typedef struct _TDD_edch_sps_info_T
1895{
1896 kal_bool eagch_init_sps_valid; /*indicating whether init SPS PARAM is configured or not*/
1897 kal_uint8 ehich_sigature_group_index; /*[range]: 0~19.*/
1898 TDD_ehich_config_T sps_ehich_info;
1899 kal_uint8 trans_pattern_num;
1900 TDD_trans_pattern_info_T trans_pattern_list[TDD_maxEDCHTxPattern_TDD128];
1901 TDD_init_sps_edch_info_T init_sps_edch_info; /*EDCH SPS resource info*/
1902}TDD_edch_sps_info_T;
1903/*****SPS info related definitions*****/
1904
1905/*****ERUCCH access type, TL1 trigger UAMC*****/
1906typedef enum _TDD_erucch_access_type_E
1907{
1908 TDD_SCHEDULING_REQUEST= 0,
1909 TDD_UL_SYNC_ORDER,
1910 TDD_CELL_RESELECTION_IND
1911}TDD_erucch_access_type_E;
1912/*****ERUCCH access type, TL1 trigger UAMC*****/
1913
1914
1915
1916
1917/*E-DCH Category Definitions, <3GPP-TS25.306:Table 5.1m>*/
1918typedef enum _TDD_edch_category_E
1919{
1920 TDD_EDCH_CATEGORY_1 = 0, /*Maximum 2 timeslots for QPSK only UE.*/
1921 TDD_EDCH_CATEGORY_2, /*Maximum 3 timeslots for QPSK only UE.*/
1922 TDD_EDCH_CATEGORY_3, /*Maximum 2 timeslots for QPSK+16QAM only UE.*/
1923 TDD_EDCH_CATEGORY_4, /*Maximum 3 timeslots for QPSK+16QAM only UE.*/
1924 TDD_EDCH_CATEGORY_5, /*Maximum 4 timeslots for QPSK+16QAM only UE.*/
1925 TDD_EDCH_CATEGORY_6 /*Maximum 5 timeslots for QPSK+16QAM only UE.*/
1926} TDD_edch_category_E;
1927
1928/*PRACH Access Type, <3GPP-TS25.302:10.1.1>*/
1929typedef enum _TDD_access_type_E
1930{
1931 TDD_ACCESS_TYPE_RACH = 0, /*Access Type is RACH*/
1932 TDD_ACCESS_TYPE_ERUCCH /*Access Type is E-RUCCH*/
1933} TDD_access_type_E;
1934
1935/*E-DCH Transmission Grant Mode*/
1936typedef enum _TDD_edch_grant_mode_E
1937{
1938 TDD_EDCH_GRANT_MODE_SCHEDULED = 0,
1939 TDD_EDCH_GRANT_MODE_NON_SCHEDULED,
1940 TDD_EDCH_GRANT_MODE_INVALID
1941
1942 ,TDD_EDCH_GRANT_MODE_SPS
1943
1944} TDD_edch_grant_mode_E;
1945
1946/*E-HICH Result Code*/
1947typedef enum _TDD_ehich_result_E
1948{
1949 TDD_EHICH_RESULT_NACK = 0,
1950 TDD_EHICH_RESULT_ACK,
1951 TDD_EHICH_RESULT_DISCARD,
1952 TDD_EHICH_RESULT_INVALID
1953} TDD_ehich_result_E;
1954
1955typedef enum _TDD_tx_suspend_E
1956{
1957 TDD_NO_SUSPEND = 0,
1958 TDD_SUSPEND_NORMAL_DATA,
1959 TDD_SUSPEND_DM,
1960#ifdef __GEMINI__
1961 TDD_SUSPEND_ALL_DATA,
1962 TDD_SUSPEND_GEMINI,
1963#else
1964 TDD_SUSPEND_ALL_DATA
1965#endif
1966} TDD_tx_suspend_E;
1967
1968typedef struct _TDD_edch_retx_harq_info_T
1969{
1970 kal_uint8 harq_id; /*[range]: 0~7, 255 for invalid*/
1971 kal_uint8 timeslots; /*[range]: 1~5, 0 when num_retx_pdu = 0.
1972 [meaning]: how many timeslots granted for first transmission of this MAC-e PDU.*/
1973 kal_uint8 etfci; /*[Range]: 0~63, 255 for invalid value.
1974 [meaning]: E-TFCI granted for first transmission of this MAC-e PDU.*/
1975 TDD_tdd128_modulation_E modulation; /*[meaning]: modulation used for the first transmission of this MAC-e PDU
1976 only QPSK and 16QAM supportted */
1977}TDD_edch_retx_harq_info_T;
1978
1979typedef enum _TDD_cedch_status_E
1980{
1981 TDD_CEDCH_IDLE = 0 ,
1982 TDD_CEDCH_START,
1983 TDD_CEDCH_ONGOING,
1984 TDD_CEDCH_END
1985}TDD_cedch_status_E;
1986
1987
1988typedef struct _TDD_etfc_eval_info_req_T
1989{
1990 /*Grant Information for this E-DCH TTI*/
1991 kal_uint16 sub_cfn; /*[range]: 0~511.
1992 [meaning]: sub-frame number.*/
1993 TDD_edch_grant_mode_E grant_mode; /*[meaning]: invalid grant, scheduled grant, or non-scheduled grant.*/
1994 kal_bool is_scheduled_grant_detected; /*TRUE: shcheduled grant detected, even if preempted by non-scheduled TTI
1995 FALSE: no scheduled grant detected.
1996 [notes]Trigger UMAC to start T-WAIT,if running.*/
1997 kal_bool is_final_scheduled_grant; /*TRUE: this is the final scheduled mode grant.
1998 FALSE: not the final scheduled mode grant or non-scheduled mode grant.
1999 [notes]: Trigger UMAC to start T-WAIT.*/
2000 kal_uint8 num_timeslot_granted; /*[range]: 1~5, 0 for control signal only case.
2001 [meaning]: how many timeslot granted for this E-DCH TTI.
2002 [note]: Considered when evaluate scheduled MAC-e PDU retransmission.*/
2003 kal_uint8 snpl_index; /*[range]: 0~31, and 255 when is_new_tx_required == KAL_FALSE.
2004 [meaing]: the SNPL index to report when SI to included.*/
2005 kal_uint8 uph_index; /*[range]: 0~31, and 255 when is_new_tx_required == KAL_FALSE.
2006 [meaing]: the UPH index to report when SI to included.*/
2007
2008 /*E-HICH results for latest E-DCH TTI*/
2009 kal_uint8 ehich_harq_id[TDD_MAX_EHICH_RESULT_NUM]; /*[range]: 0~7, 255 when no E-HICH result.
2010 [meaning]: Ack/Nack is for which HARQ process.*/
2011 TDD_ehich_result_E ehich_result[TDD_MAX_EHICH_RESULT_NUM]; /*[meaning]: E-HICH result, INVALID when no E-HICH result.*/
2012
2013 /*Control Signals*/
2014 kal_uint8 mac_event; /*[meaning]: Forwarded MAC-e/es configuration activation signal.
2015 Bit-mask of configuration:
2016 * bit0: mac-e/es setup
2017 * bit1: mac-e/es release
2018 * bit2: mac-e/es modify.*/
2019 TDD_tx_suspend_E tx_suspend;
2020
2021 kal_bool is_working_freq_changed; /*TRUE: Working frequency is changed, and UMAC shall start E-RUCCH access if TEBS > 0.
2022 FALSE: Working frequency is the same.
2023 [note]: <3GPP-TS25.321:11.9.1.5> requires both serving cell change and working frequency change
2024 leads to E-RUCCH access. TDD128 doesn't support soft-handover, i.e. UMAC clearly knows the
2025 handover procedure. As a result, we needn't the serving cell change indication in tick_1().*/
2026 kal_bool mac_es_e_reset; /*KAL_TRUE: indicates the MAC-e/es entity needs to be reset*/
2027 kal_uint8 mac_harq_event; /*MAC-e HARQ Events.
2028 Bit-mask:
2029 * bit0: E-TFC table changed
2030 * bit1: HARQ RV Re-Configuration.
2031 * bit2: capability category change.*/
2032
2033 kal_uint8 meas_occasion; /*bit0 indicates whether it is in DCH measurement occasion;
2034 bit1 indicates whether it is in idle interval for E-UTRA Measurement.
2035 value 1 means in the measurement occasion,
2036 value 0 means not in the measurement occasion*/
2037
2038 kal_bool is_cedch;
2039 kal_bool ernti_modify;
2040 TDD_cedch_status_E cedch_status;
2041
2042} TDD_etfc_eval_info_req_T;
2043
2044typedef struct _TDD_etfc_eval_info_ind_T
2045{
2046 /*Grant Information for this E-DCH TTI*/
2047 kal_uint16 sub_cfn; /*[range]: 0~511.
2048 [meaning]: sub-frame number*/
2049 TDD_edch_grant_mode_E grant_mode; /*[meaning]: invalid grant, scheduled grant, or non-scheduled grant.*/
2050
2051 /*E-TFC Evaluation Preparation Information for this E-DCH TTI*/
2052 kal_bool tx_enable; /*TRUE: TL1 need to call tick_2() and tick_4().
2053 FALSE: TL1 skip the call on tick_2() and tick_4().
2054 [meaning]: Currently, UMAC set to FALSE only when is_tx_suspend = TRUE.
2055 [notes]: Redundant if equal to is_tx_suspend, and keep it for future extension.*/
2056 kal_bool is_user_data_avaialble; /*TRUE: user data is available to transmit, and TL1 perform E-TFC procedure-2.
2057 FALSE: no user data is available to transmit, and TL1 select SI only E-TFC.*/
2058 kal_uint8 delta_harq; /*[range]: 0~6dB.
2059 [meaning]: the maximum Power Offset of all the MAC-d flows on scheduled mode or non-scheduled mode.
2060 [notes]: TL1 ignore delta_harq when is_si_only = TRUE.*/
2061
2062 /*List of NACKed MAC-e PDU to Evaluate*/
2063 kal_uint8 num_retx_pdu; /*[range]: 0~4, 0 is no HARQ process to retransmit.
2064 [meaning]: how many NACKed HARQ processes to evaluation.
2065 [notes]: UMAC will sort the MAC-e PDUs to ReTx from old to new.
2066 TL1 can stop the evaluation if one is supported from both data size and power margin.
2067 [notes]: Power restriction not apply to non-scheduled mode retransmission, <3GPP-TS25.321:11.9.1.4>.
2068 To align the scheduled and non-schedulded mode, UMAC will return the ReTx MAC-e PDU to TL1,
2069 while TL1 can jump over the ReTx evaluation procedure for non-scheduled mode.*/
2070 TDD_edch_retx_harq_info_T retx_harq_info[TDD_MAX_EDCH_HARQ_PROC_PER_MODE]; /* [meaning]: harq releated information for retransmission PDU */
2071
2072 kal_uint8 tebs; /*indicating TEBS is zero or not for EAGCH monitoring*/
2073
2074} TDD_etfc_eval_info_ind_T;
2075
2076typedef struct _TDD_edch_data_req_T
2077{
2078 /*Grant Information for this E-DCH TTI*/
2079 kal_uint16 sub_cfn; /*[range]: 0~511.
2080 [meaning]: sub-frame number.*/
2081 TDD_edch_grant_mode_E grant_mode; /*[meaning]: invalid grant, scheduled grant, or non-scheduled grant.*/
2082
2083 /*Re-transmission information*/
2084 kal_uint8 selected_retx_harq_id; /*[range]: 0~7, 255 if no retx-pdu allowed.
2085 [meaning]: Harq id of selected ReTx MAC-e PDU in retx_harq_info[].*/
2086
2087 /*New-transmission information*/
2088 kal_bool is_new_tx_required; /*TRUE: new transmission required, due to either no ReTx available or allowed.
2089 FALSE: no new transmission required, and UMAC ignore the following parameters.
2090 [notes]: UMAC will ASSERT if both selected_retx_pdu == 255 and is_new_tx_required == KAL_FALSE.*/
2091 kal_uint8 supported_etfci_num ; /*[Range]: 0~63
2092 [Meaning]: The supported ETFC number,exclude ETFCI=0.*/
2093 kal_uint8 supported_etfci_bitmap[TDD_MAX_ETFCI_BITMAP_SIZE] ; /*The bitmap indicates the status of ETFCr,exclude ETFCI=0.
2094 Two bits indicate status of one ETFC.
2095 11: supported, 10: power not support, 01: TB size not support, 00: not support.
2096 e.g. 2 LSB of supported_etfci_bitmap[0] indicates the status of ETFC0,
2097 and 2 MSB of supported_etfci_bitmap[0] indicates the status of ETFC3.*/
2098 kal_uint8 max_supported_etfci ; /* The max supported ETFCI, exclude ETFCI=0.
2099 If SI only, this field should be set to 0xff.*/
2100 kal_uint8 min_supported_etfci ; /* The min supported ETFCI, exclude ETFCI=0.
2101 If SI only, this field should be set to 0xff.*/
2102
2103 kal_bool cell_reselection; /*indicating whether to carry SI for TDD_CELL_RESELECTION_IND*/
2104
2105} TDD_edch_data_req_T;
2106
2107typedef struct _TDD_edch_data_ind_T
2108{
2109 /*Grant Information for this E-DCH TTI*/
2110 kal_uint16 sub_cfn; /*[range]: 0~511.
2111 [meaning]: sub-frame number*/
2112 TDD_edch_grant_mode_E grant_mode; /*[meaning]: invalid grant, scheduled grant, or non-scheduled grant.*/
2113
2114 /*E-UCCH information*/
2115 kal_uint8 harq_id; /*[range]: 0~7.
2116 [meaning]: the HARQ process identifier.*/
2117 kal_uint8 etfci; /*[range]: 0~63.
2118 [meaning]: the E-TFCI to transmit, with the configured category and granted timeslots.*/
2119 kal_uint8 rsn; /*[range]: 0~3.
2120 [meaning]: the RSN to use for this MAC-e PDU.*/
2121
2122 /*MAC-e PDU description*/
2123 kal_bool is_new_tx; /*TRUE: first transmission of a new MAC-e PDU.
2124 FALSE: retransmission of a MAC-e PDU.*/
2125 kal_bool is_si_only; /*TRUE: SI only MAC-e PDU.
2126 FALSE: a regular MAC-e PDU.*/
2127 kal_uint16 tb_size; /*[range]: 23~11160, in bits, and 0 when is_new_tx_required == KAL_FALSE.
2128 [meaning]: Bit length of data.*/
2129 kal_uint32 *data; /*Point to MAC-e PDU data buffer. ¸ÃbufferÖ¸ÕëÓÉMACÌîÈëºÍÊÍ·Å£¬ÓÉTL1D¶ÁÈ¡¡£ÐèÒªsystem service±£Ö¤MAC of CR4ÓëTL1D of MD32¿´µ½µÄbufferµØÖ·ÊÇÒ»ÑùµÄ*/
2130} TDD_edch_data_ind_T;
2131
2132#endif
2133
2134typedef enum _TDD_dmo_status_E
2135{
2136 TDD_ACTIVATE = 0, /*to activate this dmo pattern*/
2137 TDD_DEACTIVATE = 1, /*to deactivate this dmo pattern*/
2138}TDD_dmo_status_E;
2139typedef enum _TDD_dmo_purpose_E
2140{
2141 TDD_DMO_INTER_FREQ = 1 << 0,
2142 TDD_DMO_GSM_RSSI = 1 << 1,
2143 TDD_DMO_GSM_INITIAL_BSIC = 1 << 2,
2144 TDD_DMO_GSM_BSIC_RECFN = 1 << 3,
2145 TDD_DMO_LTE_MEAS = 1 << 4,
2146 TDD_DMO_ALL_PURPOSE = TDD_DMO_INTER_FREQ|TDD_DMO_GSM_RSSI|TDD_DMO_GSM_INITIAL_BSIC|TDD_DMO_GSM_BSIC_RECFN|TDD_DMO_LTE_MEAS,
2147}TDD_dmo_purpose_E;
2148typedef struct _TDD_dch_mo_info_T
2149{
2150 kal_uint8 pattern_id; /* Pattern sequence identifier.
2151 [Range]: 0,1,¡­, dmo_pattern_num-1.*/
2152 TDD_dmo_status_E status_flag;
2153 kal_uint8 purpose; /*Measurement Purpose. The value 1 of a bit means that the measurement occasion pattern sequence is applicable for the corresponding type of measurement.
2154 Bit 0 is for Inter-frequency measurement.
2155 Bit 1 is for GSM carrier RSSI measurement.
2156 Bit 2 is for Initial BSIC identification.
2157 Bit 3 is for BSIC re-confirmation.
2158 Bit 4 is for E-UTRA measurement.
2159 Note: Bit 0 is the first/leftmost bit of the bit string....*/
2160 kal_uint8 k; /*CELL_DCH measurement occasion cycle length coefficient. [Range]: 0,1,¡­, 9.
2161 The actual measurement occasion period equal to 2^k radio frames.
2162 Value 0 indicates continuous allocation*/
2163 kal_uint16 offset; /*In frames. The measurement occasion position in the measurement period.
2164 [Range]: 0,1,¡­, 2^k-1*/
2165 kal_uint16 length; /*The measurement occasion length in frames starting from the Offset.
2166 [Range]: 1,¡­, 2^k*/
2167 kal_uint8 timeslot_bmp; /*Bitmap indicating which of the timeslot(s) is/are allocated for measurement.
2168 Bit 0 is for timeslot 0.
2169 Bit 1 is for timeslot 1.
2170 Bit 2 is for timeslot 2.
2171 Bit 3 is for timeslot 3.
2172 Bit 4 is for timeslot 4.
2173 Bit 5 is for timeslot 5.
2174 Bit 6 is for timeslot 6.
2175
2176 The value 0 of a bit means the corresponding timeslot is not used for measurement.
2177 The value 1 of a bit means the corresponding timeslot is used for measurement.
2178 Note1: Bit 0 is the first/leftmost bit of the bit string.
2179 Note2: all 1 means all the timeslots can be used for measurement.*/
2180}TDD_dch_mo_info_T;
2181
2182/*UL dpch reconfig type*/
2183typedef enum _TDD_ul_dpch_reconfig_type_E
2184{
2185 TDD_UL_DPCH_NONE = 0, /*Do nothing with ul dpch.*/
2186 TDD_UL_DPCH_SETUP, /*Setup ul dpch.*/
2187 TDD_UL_DPCH_MODIFY, /*modify ul dpch.*/
2188 TDD_UL_DPCH_RELEASE /*Release ul dpch.*/
2189} TDD_ul_dpch_reconfig_type_E;
2190
2191
2192/*DL dpch reconfig type*/
2193typedef enum _TDD_dl_dpch_reconfig_type_E
2194{
2195 TDD_DL_DPCH_NONE = 0, /*Do nothing with dl dpch.*/
2196 TDD_DL_DPCH_SETUP, /*Setup dl dpch.*/
2197 TDD_DL_DPCH_MODIFY, /*modify dl dpch.*/
2198 TDD_DL_DPCH_RELEASE /*Release dl dpch.*/
2199} TDD_dl_dpch_reconfig_type_E;
2200
2201/*post tx type*/
2202typedef enum _TDD_post_tx_type_E
2203{
2204 TDD_POST_TX_RACH = 0,
2205 TDD_POST_TX_DCH,
2206 TDD_POST_TX_ERUCCH
2207} TDD_post_tx_type_E;
2208
2209#if defined (__GEMINI__) && defined (__UMTS_RAT__)
2210typedef enum TDD_uas_gemini_conflict_cause_enum
2211{
2212 TDD_URR_NO_CONFLICT = 0, /*UConflictWithNone*/
2213 TDD_URR_CONFLICT_WITH_UMTS_BCH_HIGH = 1, /*UConflictWithSIB_HIGH*/
2214 TDD_URR_CONFLICT_WITH_UMTS_PICH = 2, /*UConflictWithPICH*/
2215 TDD_URR_CONFLICT_WITH_UMTS_CTCH = 3, /*UConflictWithCTCH*/
2216 TDD_URR_CONFLICT_WITH_UMTS_BCH_LOW = 4, /*UConflictWithSIB_LOW*/
2217 TDD_URR_CONFLICT_WITH_GSM_NBCCH = 5, /*UConflictWithNBCCh*/
2218 TDD_URR_CONFLICT_WITH_GSM_PCH = 6, /*UConflictWithPCh*/
2219 TDD_URR_CONFLICT_WITH_GSM_BCCH = 7, /*UConflictWithBCCh*/
2220 TDD_URR_CONFLICT_WITH_GSM_OTHERS = 8, /*UConflictWithOther*/
2221} TDD_uas_gemini_conflict_cause_enum;
2222#endif
2223/* [R8] Enumeration of hs_dsch transmission type. */
2224typedef enum _TDD_rrc_state_E
2225{
2226 TDD_CELL_DCH = 0,
2227 TDD_URA_PCH,
2228 TDD_CELL_PCH,
2229 TDD_IDLE_FACH,
2230 TDD_CELL_FACH
2231} TDD_rrc_state_E;
2232
2233
2234/* [R8] Enumeration of enabling delay. Uint is radio frame. */
2235typedef enum _TDD_enabling_delay_E
2236{
2237 TDD_ED_0 = 0,
2238 TDD_ED_1,
2239 TDD_ED_2,
2240 TDD_ED_4,
2241 TDD_ED_8,
2242 TDD_ED_16,
2243 TDD_ED_32,
2244 TDD_ED_64,
2245 TDD_ED_128,
2246 TDD_ED_spare7,
2247 TDD_ED_spare6,
2248 TDD_ED_spare5,
2249 TDD_ED_spare4,
2250 TDD_ED_spare3,
2251 TDD_ED_spare2,
2252 TDD_ED_INFINITY
2253} TDD_enabling_delay_E;
2254
2255/* [R8] Enumeration of HS-SCCH/E-AGCH DRX cycle. Uint is subframe. */
2256/*
2257typedef enum _control_channel_drx_cycle_E
2258{
2259 TDD_drx_cycle_1 = 0,
2260 TDD_drx_cycle_2,
2261 TDD_drx_cycle_4,
2262 TDD_drx_cycle_8,
2263 TDD_drx_cycle_16,
2264 TDD_drx_cycle_32,
2265 TDD_drx_cycle_64
2266} control_channel_drx_cycle_E;
2267*/
2268/* [R8] Enumeration of ue_drx_cycle_inactivity_threshold. Uint is subframe. */
2269typedef enum _TDD_scch_drx_cycle_inactivity_threshold_E
2270{
2271 TDD_drx_cycle_inaTrHd_1,
2272 TDD_drx_cycle_inaTrHd_2,
2273 TDD_drx_cycle_inaTrHd_4,
2274 TDD_drx_cycle_inaTrHd_8,
2275 TDD_drx_cycle_inaTrHd_16,
2276 TDD_drx_cycle_inaTrHd_32,
2277 TDD_drx_cycle_inaTrHd_64,
2278 TDD_drx_cycle_inaTrHd_128,
2279 TDD_drx_cycle_inaTrHd_256,
2280 TDD_drx_cycle_inaTrHd_512,
2281 TDD_drx_cycle_inaTrHd_spare6,
2282 TDD_drx_cycle_inaTrHd_spare5,
2283 TDD_drx_cycle_inaTrHd_spare4,
2284 TDD_drx_cycle_inaTrHd_spare3,
2285 TDD_drx_cycle_inaTrHd_spare2,
2286 TDD_drx_cycle_inaTrHd_infinity
2287} TDD_scch_drx_cycle_inactivity_threshold_E;
2288
2289/* [R8] Enumeration of out-of-sync window. Uint is ms. */
2290typedef enum _TDD_out_of_sync_win_E
2291{
2292 TDD_out_of_sync_win_40 = 0,
2293 TDD_out_of_sync_win_80,
2294 TDD_out_of_sync_win_160,
2295 TDD_out_of_sync_win_320,
2296 TDD_out_of_sync_win_640,
2297} TDD_out_of_sync_win_E;
2298
2299/* [R8] Enumeration of enhanced CELL_FACH DRX status */
2300typedef enum _TDD_hs_cell_fach_drx_status_E
2301{
2302 TDD_DRX_OFF = 0, /* No DRX in CELL_FACH state or ETWS reception is on-going */
2303 TDD_DRX_ON_NORMAL, /* UL1 should start CELL_FACH DRX when the normal criterion is fulfilled */
2304 TDD_DRX_ON_ETWS_END, /* SLCE should set this enum when the ETWS procedure ends */
2305 TDD_DRX_INVALID /* SLCE internal use. Invalid for UL1. */
2306}TDD_hs_cell_fach_drx_status_E;
2307
2308typedef struct _TDD_receive_pattern_list_info_T
2309{
2310 kal_uint8 repetition_period; /* Integer (1, 2, 4, 8, 16, 32). Value 1 indicate continuous*/
2311 kal_uint8 repetition_length; /* Integer (1.. Repetition period - 1)*/
2312} TDD_receive_pattern_list_info_T;
2313
2314typedef struct _TDD_harq_Info_sps_T
2315{
2316 kal_uint8 processes_number; /*Integer (1..8)*/
2317 kal_uint16 process_memory_size; /*Integer (800 .. 16000 by step of 800, 17600 .. 32000 by step of 1600, 36000 .. 80000 by step of 4000, 88000 .. 160000 by step of 8000, 176000 .. 304000 by step of 16000)
2318 Maximum number of soft channel bits available in the virtual IR buffer */
2319} TDD_harq_Info_sps_T;
2320
2321typedef struct _TDD_hs_dsch_paging_info_T
2322{
2323 kal_uint8 trri; /* BitString(6) Timeslot Resource Related Information, bitmap of assigned timeslots.
2324 Bit0-TS0, Bit1-TS2, Bit2-TS3, ... Bit5-TS6.
2325 Notes: for TL1, only check Bit1 -- Bit5*/
2326 TDD_ccode_lcr_E start_ccode; /*The start channelization code of HS-PDSCH.*/
2327 TDD_ccode_lcr_E stop_ccode; /*The stop channelization code of HS-PDSCH.*/
2328 TDD_midamble_info_T hspdsch_midamble_info; /*Midamble info for HS-PDSCH*/
2329 kal_uint8 paging_sub_channel_size; /* [Range] Integer (1..3) number of frames for a Paging sub-channel*/
2330 kal_int8 pcch_tb_size_index[2]; /* [Range] Integer (1..32). -1 if this is invalid. Index of value range 1 to 32 of the MAC-ehs transport block size as described in Table9.2.2.3.8 of 3GPP 25.321. */
2331} TDD_hs_dsch_paging_info_T;
2332
2333
2334typedef struct _TDD_hs_scch_drx_info_T
2335{
2336 TDD_ctrl_ch_drx_cycle_E hs_scch_drx_cycle; /* [Meaning]: HS-SCCH reception pattern, i.e. how often UE has to monitor HSSCCH. Units of subframes*/
2337 kal_bool hs_scch_drx_inaTrHd_valid;
2338 TDD_scch_drx_cycle_inactivity_threshold_E hs_scch_drx_inaTrHd; /* [Meaning]: Units of subframes.Five spare values are needed.*/
2339 kal_uint8 hs_scch_drx_offset; /*[Range]: Integer (0..63).
2340 [Meaning]: Units of subframes. Offset of the HS-SCCH DRX cycles*/
2341} TDD_hs_scch_drx_info_T;
2342
2343typedef struct _TDD_initial_sps_info_hsdsch_T
2344{
2345 kal_uint8 trri; /*BitStrin(5) indicating which of the timeslots configured for HS-PDSCH are allocated for SPS resource.
2346 if ts0 indicator == TRUE, Bit1: TS0, Bit2: TS3, ..., Bit5: Ts6
2347 else Bit1: TS2, Bit2: TS3, ..., Bit5: Ts6
2348 Bit5 indicating the rightmost bit!*/
2349 TDD_ccode_lcr_E start_ccode; /*The start channelization code of HS-PDSCH.*/
2350 TDD_ccode_lcr_E stop_ccode; /*The stop channelization code of HS-PDSCH.*/
2351 kal_uint8 active_time; /*0~~255, Specifies the HS-PDSCH Offset in Radio Frame level*/
2352 kal_uint8 subframe_number; /*Integer (0..1),Specifies the HS-PDSCH Offset in subframe level*/
2353 kal_uint8 init_tb_size_index; /*Integer (0.. maxTbsForHSDSCH-TDD128-1)*/
2354 kal_uint8 init_rx_pattern_index; /*Integer (0.. maxRxPatternForHSDSCH-TDD128-1)*/
2355 kal_uint8 hs_sich_index; /*Integer (0.. maxHSSICH-TDD128-1)*/
2356 TDD_tdd128_modulation_E modulation; /*Enumerated (QPSK, 16QAM)*/
2357} TDD_initial_sps_info_hsdsch_T;
2358
2359typedef struct _TDD_hs_cell_fach_drx_T
2360{
2361 TDD_hs_cell_fach_drx_status_E hs_cell_fach_drx_status; /* enhanced CELL_FACH DRX status */
2362 kal_uint16 timer_length; /* inactivity timer to start HS CELL_FACH DRX (100/200/400/800 ms)*/
2363 kal_uint8 drx_cycle_length; /* HS CELL_FACH DRX cycle length (4/8/16/32 frames) */
2364 kal_uint8 drx_burst_length; /* the period within the HS DRX cycle that the UE continuously receive HS-DSCH (1/2/4/8/16 frames) */
2365}TDD_hs_cell_fach_drx_T;
2366
2367typedef struct _TDD_hs_dsch_sps_info_T
2368{
2369 kal_bool hs_dsch_init_sps_valid; /*indicating
2370 whether init SPS PARAM is configured or not*/
2371 kal_uint8 tb_size_num; /* maxTbsForHSDSCH-TDD128 = 4*/
2372 kal_uint8 tb_size_list[4]; /* Integer (1..63).
2373 Index of the MAC-hs transport block size.*/
2374 kal_uint8 receive_pattern_num; /* maxRxPatternForHSDSCH-TDD128 = 4*/
2375 TDD_receive_pattern_list_info_T receive_pattern_list[4];
2376 TDD_harq_Info_sps_T harq_Info_sps;
2377 kal_uint8 sich_num; /* maxHSSICH-TDD128 = 4*/
2378 TDD_hssich_info_T hs_sich_list[TDD_MAX_HSSCCH_NUM];
2379 TDD_initial_sps_info_hsdsch_T initial_sps_info_hsdsch;
2380} TDD_hs_dsch_sps_info_T;
2381
2382typedef struct _TDD_hs_cell_pch_state_info_T
2383{
2384 TDD_pich_info_T pich_info;
2385 kal_uint8 reception_window_size; /* [Range] Integer (1¡­16) Number of subframes for UE to detect the HS-SCCH */
2386 kal_bool hs_dsch_paging_info_valid; /* TRUE: The hs_dsch_paging_info is valid. TRUE also means UE donot have dedicated H-RNTI*/
2387 TDD_hs_dsch_paging_info_T hs_dsch_paging_info; /* HSDSCH Paging info*/
2388} TDD_hs_cell_pch_state_info_T;
2389
2390typedef struct _TDD_hs_cell_fach_state_info_T
2391{
2392 kal_bool ts0_indicator; /* 1: TS0 used for HSDSCH; 0: TS0 is not used for HSDSCH*/
2393 TDD_hs_cell_fach_drx_T fach_drx_info;
2394} TDD_hs_cell_fach_state_info_T;
2395
2396typedef struct _TDD_hs_cell_dch_state_info_T
2397{
2398 kal_uint8 pa_plus_valid_flag; /* Bit mask:
2399 Bit 0: control_channel_drx_status en/disable
2400 Bit 1: sps_status en/disable
2401
2402 Bit 2: drx_param_valid. When Bit0 is "1", but Bit2 is "0", indicating DRX keeps enabled but PARAM not modify
2403 Bit 3: hs_dsch_sps_param_valid. Reference Bit2 comments*/
2404 TDD_hs_scch_drx_info_T hs_scch_drx_param; /* HS-SCCH DRX relate parameters*/
2405 TDD_enabling_delay_E enabling_delay;
2406 TDD_hs_dsch_sps_info_T hs_dsch_sps_info; /* HS-DSCH SPS Configuration Information*/
2407 TDD_out_of_sync_win_E out_of_sync_window; /* Enumerated (40, 80, 160, 320, 640). Value in milliseconds.*/
2408 kal_bool ts0_indicator; /* Absence of this IE means that the enhanced TS0 is not used. The presence of this IE means that the first bit of timeslot information on HS-SCCH is used to indicate TS0.*/
2409} TDD_hs_cell_dch_state_info_T;
2410
2411typedef union _TDD_hspdsch_state_info_T
2412{
2413 TDD_hs_cell_pch_state_info_T cell_pch; /* The parameters in CELL_PCH or URA state. */
2414 TDD_hs_cell_fach_state_info_T cell_fach;
2415 TDD_hs_cell_dch_state_info_T cell_dch; /* The parameters in CELL_DCH state. */
2416} TDD_hspdsch_state_info_T;
2417
2418
2419
2420typedef enum _TDD_tl1_em_tstcmdtype
2421{
2422 TDD_TL1_EM_TST_TX_START = 0,
2423 TDD_TL1_EM_TST_TX_STOP = 1,
2424 TDD_TL1_EM_TST_RX_REPORT = 2,
2425 TDD_TL1_EM_TST_TX_REPORT = 3
2426}TDD_tl1_em_tstcmdtype;
2427
2428typedef struct _TDD_tl1_em_tstcmdpara
2429{
2430 kal_uint8 band;
2431 kal_uint16 freq;
2432 kal_uint8 power;
2433}TDD_tl1_em_tstcmdpara;
2434#if defined(__SIMULATION_PS_TL1_BOTH__) || defined(__TL1_TST_LOG_DSP_RESP__)
2435typedef enum
2436{
2437 TDD_TL1_TIMER_SYNC = 1,
2438 TDD_TL1_TIMER_SNIFFER,
2439 TDD_TL1_TIMER_DSP_CEHCK,
2440} TDD_tl1_timer_E;
2441#endif
2442
2443
2444#endif