rjw | 6c1fd8f | 2022-11-30 14:33:01 +0800 | [diff] [blame] | 1 | /***************************************************************************** |
| 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) 2012 |
| 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 | * |
| 38 | * Filename: |
| 39 | * --------- |
| 40 | * errc_emac_msg.h |
| 41 | * |
| 42 | * Project: |
| 43 | * -------- |
| 44 | * MOLY |
| 45 | * |
| 46 | * Description: |
| 47 | * ------------ |
| 48 | * Define ERRC EMAC interface enums, structures and constants |
| 49 | * |
| 50 | * Author: |
| 51 | * ------- |
| 52 | * ------- |
| 53 | * |
| 54 | * ========================================================================== |
| 55 | * $Log$ |
| 56 | * |
| 57 | * 11 01 2018 sc.tung |
| 58 | * [MOLY00361478] [Gen97] Gemini Compile Option Clean Up |
| 59 | * |
| 60 | * [el2][emac] Gemini compiler option clean up. |
| 61 | * |
| 62 | * 07 31 2018 guang-yu.zheng |
| 63 | * [MOLY00342112] [MT6295] ERRC-EMAC interface extend for RA/TA configuration (UL2CC->3CC) |
| 64 | * Add back legacy interface for xl1sim flow |
| 65 | * |
| 66 | * 07 27 2018 guang-yu.zheng |
| 67 | * [MOLY00342112] [MT6295] ERRC-EMAC interface extend for RA/TA configuration (UL2CC->3CC) |
| 68 | * RA/TA interface extenstion for 3CC |
| 69 | * |
| 70 | * 06 14 2018 tina-yt.wang |
| 71 | * [MOLY00333176] [ICD] stage1+stage2 ICD UMOLYE CBr patch back to LR13.R0 |
| 72 | * [EL2ICD] EMAC ERT related part |
| 73 | * |
| 74 | * 06 11 2018 jia-shi.lin |
| 75 | * [MOLY00319373] [MT6295] recommended bit rate feature |
| 76 | * recommended bit rate feature: txlisr and emac design |
| 77 | * |
| 78 | * 06 05 2018 guang-yu.zheng |
| 79 | * [MOLY00331352] [MT6295] EL2 MML2 DVFS control development |
| 80 | * Add CAT16 support for MML2 DVFS Control |
| 81 | * |
| 82 | * 04 11 2018 jia-shi.lin |
| 83 | * [MOLY00319373] [MT6295] recommended bit rate feature |
| 84 | * recommended bit rate feature: errc-emac interface |
| 85 | * |
| 86 | * 04 10 2018 nicole.hsu |
| 87 | * [MOLY00314955] [Gen 95][ERRC][RCM] MP1 capability config |
| 88 | * [UMOLYE TRUNK] add RBR_enable to ERRC-EMAC interface |
| 89 | * |
| 90 | * 03 19 2018 guang-yu.zheng |
| 91 | * [MOLY00313850] [MT6295] MML2 DVFS control feature development |
| 92 | * MML2 DVFS control and MCU DVFS re-org |
| 93 | * |
| 94 | * 02 26 2018 wen-jiunn.liu |
| 95 | * [MOLY00279230] [93/95 re-arch] Gen95 Development |
| 96 | * [EMAC][ERRC] Interface for PUSCH Enhancement Mode |
| 97 | * |
| 98 | * 01 11 2018 jia-shi.lin |
| 99 | * [MOLY00301451] [SMO release][93/95]EL1 relative interface |
| 100 | * emac/el1 interface re-arch |
| 101 | * |
| 102 | * 09 20 2017 nicole.hsu |
| 103 | * [MOLY00279184] [PCT][Anritsu][CAG50C][E40][7.1.1.2] fail |
| 104 | * [TRUNK] LCID vs. support release handling |
| 105 | * |
| 106 | * 08 16 2017 guang-yu.zheng |
| 107 | * [MOLY00271123] [MT6293][EMAC] SRLTE-enhance feature code sync |
| 108 | * Add EMAC interface for SRLTE enhancement handling |
| 109 | * |
| 110 | * 01 25 2017 eddie.wang |
| 111 | * [MOLY00210650] [MT6293][UMOLYA TRUNK] EMAC maintenance |
| 112 | * [MSIM][RSIM] Add emac config req cause for remote sim scenario |
| 113 | * |
| 114 | * 12 26 2016 mf.jhang |
| 115 | * [MOLY00194987] [MT6293][UMOLYA/PS DEV] EMAC maintenance |
| 116 | * update errc_emac_ca_activate_ind_struct |
| 117 | * |
| 118 | * 11 08 2016 mf.jhang |
| 119 | * [MOLY00194987] [MT6293][UMOLYA/PS DEV] EMAC maintenance |
| 120 | * Update errc_emac_ca_activate_ind_struct |
| 121 | * |
| 122 | * 10 06 2016 eddie.wang |
| 123 | * [MOLY00206522] [MT6293][NWSIM][Regression][TC_7_1_4_18] Test failed |
| 124 | * TRUNK:Remove redundant config like extendedBSR and MBMS in emac_config_req |
| 125 | * |
| 126 | * 09 13 2016 nicole.hsu |
| 127 | * [MOLY00194987] [MT6293][UMOLYA/PS DEV] EMAC maintenance |
| 128 | * [xL1Sim] remove errc_emac_config old field - tti_bundling_flag |
| 129 | * |
| 130 | * 03 16 2016 yk.liu |
| 131 | * [MOLY00165181] Syn EMAC from LR11 TO UMOLY for CL1990358 |
| 132 | * . |
| 133 | * |
| 134 | * 03 15 2016 ryan.ou |
| 135 | * [MOLY00162291] [MT6292] EMAC code sync from LR11 to UMOLY |
| 136 | * CL1867764, [MOLY00151000] [MT6755] SRVCC Enhancement. |
| 137 | * |
| 138 | * 01 11 2016 ville.pukari |
| 139 | * [MOLY00156411] [MT6292] Logical Channel SR prohibit timer: New feature |
| 140 | * |
| 141 | * 10 16 2015 panu.peisa |
| 142 | * [MOLY00145084] DE6 code merge from UMOLY_92dev CBr to UMOLY trunk |
| 143 | * Integrated LTE_SEC changes from UMOLY_92dev ( errc part ). |
| 144 | * |
| 145 | * 10 06 2015 esko.oikarinen |
| 146 | * ERRC changes for multiple TA |
| 147 | * |
| 148 | * 09 10 2015 chun-fan.tsai |
| 149 | * [MOLY00098400] [6291] eRRC CONN EM |
| 150 | * Add CCCH Data Req cause for EMAC EM |
| 151 | * |
| 152 | * 03 18 2015 chen-wei.wang |
| 153 | * [MOLY00099525] [TK6291] EMAC MDT feature check-in |
| 154 | * interface file check-in |
| 155 | * |
| 156 | * 12 03 2014 sh.yang |
| 157 | * [MOLY00084081] [UMOLY] Trunk merge back |
| 158 | * .Add carrier index in si_ind_struct |
| 159 | * |
| 160 | * 11 11 2014 yiting.cheng |
| 161 | * [MOLY00084042] [UMOLY] merge UMOLY_DEV to UMOLY trunk |
| 162 | * . |
| 163 | * |
| 164 | * 10 08 2014 henry.lai |
| 165 | * [MOLY00079071] [MT6291][U4G] Low Power Modification for CEL Paging |
| 166 | * . |
| 167 | * |
| 168 | * 09 19 2014 chi-chung.lin |
| 169 | * [MOLY00073836] [MT6291][ERRC][CHM] LTE-A CHM development code check-in |
| 170 | * [CHM] MBMS interface check in |
| 171 | * |
| 172 | * 07 28 2014 yiting.cheng |
| 173 | * [MOLY00073830] [MT6291_DEV] check-in MT6291 modification |
| 174 | * Check-in EMAC-ERRC interface |
| 175 | * |
| 176 | * 08 06 2013 stanleyhy.chen |
| 177 | * [MOLY00032633] 4G Nbr Cell Info |
| 178 | * 4G Nbr Cell Info in LTE Domain |
| 179 | * |
| 180 | * 07 22 2013 stanleyhy.chen |
| 181 | * [MOLY00029602] [New Feature] NBR_CELL_INFO and TA_INFO related interfaces |
| 182 | * Add ERRC_EMAC_TA_INFO_INVALID_IND |
| 183 | * |
| 184 | * 07 12 2013 stanleyhy.chen |
| 185 | * [MOLY00029602] [New Feature] NBR_CELL_INFO and TA_INFO related interfaces |
| 186 | * TA_INFO and NBR_CELL_INFO interfaces for LPP feature |
| 187 | ****************************************************************************/ |
| 188 | |
| 189 | #ifndef ERRC_EMAC_MSG_H |
| 190 | #define ERRC_EMAC_MSG_H |
| 191 | |
| 192 | |
| 193 | #include "kal_public_api.h" |
| 194 | #include "el2_sap_common.h" |
| 195 | #include "qmu_bm.h" |
| 196 | #include "lte_time_common.h" |
| 197 | #include "common_def.h" |
| 198 | |
| 199 | #if !defined(__XL1SIM_EL1__) && defined(__LTE_L1SIM__) |
| 200 | #define __XL1SIM_EL1__ |
| 201 | #endif |
| 202 | //////////////////////////////////////////////////////////////// |
| 203 | // MAC configuration request |
| 204 | //////////////////////////////////////////////////////////////// |
| 205 | |
| 206 | //mac config request info bitmap |
| 207 | #define EMAC_CONFIG_INFO_RA_MASK 0x01 |
| 208 | #define EMAC_CONFIG_INFO_SCHED_MASK 0x02 |
| 209 | #define EMAC_CONFIG_INFO_DRX_MASK 0x04 |
| 210 | #define EMAC_CONFIG_INFO_PHR_MASK 0x08 |
| 211 | #define EMAC_CONFIG_INFO_CRNTI_MASK 0x10 |
| 212 | |
| 213 | #define ERRC_EMAC_CCCH_SZ (6) |
| 214 | |
| 215 | //max number of RB |
| 216 | #define ERRC_EMAC_MAX_RB_NB (10) |
| 217 | |
| 218 | //max number of STAG/SCell |
| 219 | #if(CUR_GEN >= MD_GEN95) |
| 220 | #define ERRC_EMAC_MAX_STAG_NB (1) |
| 221 | #define ERRC_EMAC_MAX_SCELL_NB (3) |
| 222 | #else |
| 223 | #define ERRC_EMAC_MAX_STAG_NB (1) |
| 224 | #define ERRC_EMAC_MAX_SCELL_NB (1) |
| 225 | #endif |
| 226 | |
| 227 | |
| 228 | |
| 229 | typedef enum |
| 230 | { |
| 231 | ERRC_EMAC_CONFIG_CAUSE_NON_HO = 0, |
| 232 | ERRC_EMAC_CONFIG_CAUSE_HO = 1, |
| 233 | ERRC_EMAC_CONFIG_CAUSE_RESET = 2, |
| 234 | //#if defined(__REMOTE_SIM__) |
| 235 | #if defined(__GEMINI__) |
| 236 | ERRC_EMAC_CONFIG_CAUSE_RESET_VIRTUAL_CONNECTED_ENTER = 3, |
| 237 | ERRC_EMAC_CONFIG_CAUSE_VIRTUAL_CONNECTED_LEAVE_PREPARE = 4, |
| 238 | ERRC_EMAC_CONFIG_CAUSE_VIRTUAL_CONNECTED_LEAVE = 5, |
| 239 | ERRC_EMAC_CONFIG_CAUSE_RESET_VIRTUAL_CONNECTED_LEAVE_FAIL = 6, |
| 240 | //#if defined(__SRLTE_ENHANCE__) |
| 241 | #if defined(__GEMINI__) |
| 242 | //The design for SRLTE enhancement will be the same as RSIM, but we still seperate the cause |
| 243 | ERRC_EMAC_CONFIG_CAUSE_RESET_VIRTUAL_CONNECTED_ENTER_FOR_SRLTE = 7, |
| 244 | ERRC_EMAC_CONFIG_CAUSE_VIRTUAL_CONNECTED_LEAVE_PREPARE_FOR_SRLTE = 8, |
| 245 | ERRC_EMAC_CONFIG_CAUSE_VIRTUAL_CONNECTED_LEAVE_FOR_SRLTE = 9, |
| 246 | ERRC_EMAC_CONFIG_CAUSE_RESET_VIRTUAL_CONNECTED_LEAVE_FAIL_FOR_SRLTE = 10, |
| 247 | #endif |
| 248 | #endif |
| 249 | } errc_emac_config_cause_enum; |
| 250 | |
| 251 | //For ICD MAC_RESET_EVENT and MAC_CONFIGURATION_EVENT |
| 252 | typedef enum |
| 253 | { |
| 254 | ERRC_EMAC_ICD_RESET_CAUSE_OTHERS = 0, |
| 255 | ERRC_EMAC_ICD_RESET_CAUSE_RELEASE = 1, |
| 256 | ERRC_EMAC_ICD_RESET_CAUSE_HO = 2, |
| 257 | ERRC_EMAC_ICD_RESET_CAUSE_RLF = 3, |
| 258 | ERRC_EMAC_ICD_CONFIG_CAUSE_NORMAL = 4, |
| 259 | ERRC_EMAC_ICD_CONFIG_CAUSE_HO = 5, |
| 260 | } errc_emac_icd_event_cause_enum; |
| 261 | |
| 262 | typedef enum |
| 263 | { |
| 264 | ERRC_EMAC_TA_TIMER_500, ERRC_EMAC_TA_TIMER_750, ERRC_EMAC_TA_TIMER_1280, ERRC_EMAC_TA_TIMER_1920, |
| 265 | ERRC_EMAC_TA_TIMER_2560, ERRC_EMAC_TA_TIMER_5120, ERRC_EMAC_TA_TIMER_10240, ERRC_EMAC_TA_TIMER_INF |
| 266 | } errc_emac_ta_timer_enum; |
| 267 | |
| 268 | typedef enum |
| 269 | { |
| 270 | RA_PREAMBLE_NB_4, RA_PREAMBLE_NB_8, RA_PREAMBLE_NB_12, RA_PREAMBLE_NB_16, |
| 271 | RA_PREAMBLE_NB_20, RA_PREAMBLE_NB_24, RA_PREAMBLE_NB_28, RA_PREAMBLE_NB_32, |
| 272 | RA_PREAMBLE_NB_36, RA_PREAMBLE_NB_40, RA_PREAMBLE_NB_44, RA_PREAMBLE_NB_48, |
| 273 | RA_PREAMBLE_NB_52, RA_PREAMBLE_NB_56, RA_PREAMBLE_NB_60,RA_PREAMBLE_NB_64 |
| 274 | } errc_emac_ra_preamble_nb_enum; |
| 275 | |
| 276 | typedef enum |
| 277 | { |
| 278 | RA_GROUP_A_SZ_4, RA_GROUP_A_SZ_8, RA_GROUP_A_SZ_12, RA_GROUP_A_SZ_16, |
| 279 | RA_GROUP_A_SZ_20, RA_GROUP_A_SZ_24, RA_GROUP_A_SZ_28, RA_GROUP_A_SZ_32, |
| 280 | RA_GROUP_A_SZ_36, RA_GROUP_A_SZ_40, RA_GROUP_A_SZ_44, RA_GROUP_A_SZ_48, |
| 281 | RA_GROUP_A_SZ_52, RA_GROUP_A_SZ_56, RA_GROUP_A_SZ_60 |
| 282 | } errc_emac_ra_group_a_sz_enum; |
| 283 | |
| 284 | typedef enum |
| 285 | { |
| 286 | RA_GROUP_A_MSG_SZ_56, RA_GROUP_A_MSG_SZ_144, RA_GROUP_A_MSG_SZ_208, RA_GROUP_A_MSG_SZ_256 |
| 287 | } errc_emac_ra_msg_sz_group_a_enum; |
| 288 | |
| 289 | typedef enum |
| 290 | { |
| 291 | MSG_POW_OFFSET_GROUP_B_MINUS_INF, MSG_POW_OFFSET_GROUP_B_0, MSG_POW_OFFSET_GROUP_B_5, |
| 292 | MSG_POW_OFFSET_GROUP_B_8, MSG_POW_OFFSET_GROUP_B_10, MSG_POW_OFFSET_GROUP_B_12, |
| 293 | MSG_POW_OFFSET_GROUP_B_15, MSG_POW_OFFSET_GROUP_B_18 |
| 294 | } errc_emac_msg_pow_offset_group_b_enum; |
| 295 | |
| 296 | typedef enum |
| 297 | { |
| 298 | RA_POW_RAMPING_0, RA_POW_RAMPING_2, RA_POW_RAMPING_4, RA_POW_RAMPING_6 |
| 299 | } errc_emac_ra_pow_ramping_enum; |
| 300 | |
| 301 | typedef enum |
| 302 | { |
| 303 | PREAMBLE_INIT_POW_MINUS120, PREAMBLE_INIT_POW_MINUS118, PREAMBLE_INIT_POW_MINUS116, |
| 304 | PREAMBLE_INIT_POW_MINUS114, PREAMBLE_INIT_POW_MINUS112, PREAMBLE_INIT_POW_MINUS110, |
| 305 | PREAMBLE_INIT_POW_MINUS108, PREAMBLE_INIT_POW_MINUS106, PREAMBLE_INIT_POW_MINUS104, |
| 306 | PREAMBLE_INIT_POW_MINUS102, PREAMBLE_INIT_POW_MINUS100, |
| 307 | PREAMBLE_INIT_POW_MINUS98, PREAMBLE_INIT_POW_MINUS96, PREAMBLE_INIT_POW_MINUS94, |
| 308 | PREAMBLE_INIT_POW_MINUS92, PREAMBLE_INIT_POW_MINUS90 |
| 309 | } errc_emac_preamble_init_pow_enum; |
| 310 | |
| 311 | typedef enum |
| 312 | { |
| 313 | PREAMBLE_TX_MAX_3, PREAMBLE_TX_MAX_4, PREAMBLE_TX_MAX_5, PREAMBLE_TX_MAX_6, |
| 314 | PREAMBLE_TX_MAX_7, PREAMBLE_TX_MAX_8, PREAMBLE_TX_MAX_10, PREAMBLE_TX_MAX_20, |
| 315 | PREAMBLE_TX_MAX_50, PREAMBLE_TX_MAX_100, PREAMBLE_TX_MAX_200 |
| 316 | } errc_emac_preamble_tx_max_enum; |
| 317 | |
| 318 | typedef enum |
| 319 | { |
| 320 | RAR_WND_SZ_2, RAR_WND_SZ_3, RAR_WND_SZ_4, RAR_WND_SZ_5, RAR_WND_SZ_6, RAR_WND_SZ_7, |
| 321 | RAR_WND_SZ_8, RAR_WND_SZ_10 |
| 322 | } errc_emac_rar_wnd_sz_enum; |
| 323 | |
| 324 | typedef enum |
| 325 | { |
| 326 | CR_TIMER_8, CR_TIMER_16, CR_TIMER_24, CR_TIMER_32, CR_TIMER_40, CR_TIMER_48, CR_TIMER_56, CR_TIMER_64 |
| 327 | } errc_emac_cr_timer_enum; |
| 328 | |
| 329 | |
| 330 | typedef enum |
| 331 | { |
| 332 | MAX_HARQ_TX_1, MAX_HARQ_TX_2, MAX_HARQ_TX_3, MAX_HARQ_TX_4, MAX_HARQ_TX_5, MAX_HARQ_TX_6, |
| 333 | MAX_HARQ_TX_7, MAX_HARQ_TX_8, MAX_HARQ_TX_10, MAX_HARQ_TX_12, MAX_HARQ_TX_16, MAX_HARQ_TX_20, |
| 334 | MAX_HARQ_TX_24, MAX_HARQ_TX_28 |
| 335 | } errc_emac_max_harq_tx_enum; |
| 336 | |
| 337 | typedef enum |
| 338 | { |
| 339 | PERIODIC_BSR_5, PERIODIC_BSR_10, PERIODIC_BSR_16, PERIODIC_BSR_20, PERIODIC_BSR_32, |
| 340 | PERIODIC_BSR_40, PERIODIC_BSR_64, PERIODIC_BSR_80, PERIODIC_BSR_128, PERIODIC_BSR_160, |
| 341 | PERIODIC_BSR_320, PERIODIC_BSR_640, PERIODIC_BSR_1280, PERIODIC_BSR_2560, PERIODIC_BSR_INF |
| 342 | } errc_emac_periodic_bsr_timer_enum; |
| 343 | |
| 344 | typedef enum |
| 345 | { |
| 346 | RETX_BSR_320, RETX_BSR_640, RETX_BSR_1280, RETX_BSR_2560, RETX_BSR_5120, RETX_BSR_10240 |
| 347 | } errc_emac_retx_bsr_timer_enum; |
| 348 | |
| 349 | typedef enum |
| 350 | { |
| 351 | ON_DURATION_PS1, ON_DURATION_PS2, ON_DURATION_PS3, ON_DURATION_PS4, ON_DURATION_PS5, ON_DURATION_PS6, |
| 352 | ON_DURATION_PS8, ON_DURATION_PS10, ON_DURATION_PS20, ON_DURATION_PS30, ON_DURATION_PS40, |
| 353 | ON_DURATION_PS50, ON_DURATION_PS60, ON_DURATION_PS80, ON_DURATION_PS100, ON_DURATION_PS200, |
| 354 | ON_DURATION_PS300, ON_DURATION_PS400, ON_DURATION_PS500, ON_DURATION_PS600, |
| 355 | ON_DURATION_PS800, ON_DURATION_PS1000, ON_DURATION_PS1200, ON_DURATION_PS1600 |
| 356 | } errc_emac_on_duration_timer_enum; |
| 357 | |
| 358 | typedef enum |
| 359 | { |
| 360 | DRX_INACTIVITY_PS1, DRX_INACTIVITY_PS2, DRX_INACTIVITY_PS3, DRX_INACTIVITY_PS4, DRX_INACTIVITY_PS5, |
| 361 | DRX_INACTIVITY_PS6, DRX_INACTIVITY_PS8, DRX_INACTIVITY_PS10, DRX_INACTIVITY_PS20, DRX_INACTIVITY_PS30, |
| 362 | DRX_INACTIVITY_PS40, DRX_INACTIVITY_PS50, DRX_INACTIVITY_PS60, DRX_INACTIVITY_PS80, DRX_INACTIVITY_PS100, |
| 363 | DRX_INACTIVITY_PS200, DRX_INACTIVITY_PS300, DRX_INACTIVITY_PS500, DRX_INACTIVITY_PS750, DRX_INACTIVITY_PS1280, |
| 364 | DRX_INACTIVITY_PS1920, DRX_INACTIVITY_PS2560, DRX_INACTIVITY_PS0 |
| 365 | } errc_emac_drx_inactivity_timer_enum; |
| 366 | |
| 367 | typedef enum |
| 368 | { |
| 369 | DRX_RETX_TIMER_PS1, DRX_RETX_TIMER_PS2, DRX_RETX_TIMER_PS4, DRX_RETX_TIMER_PS6, DRX_RETX_TIMER_PS8, |
| 370 | DRX_RETX_TIMER_PS16, DRX_RETX_TIMER_PS24, DRX_RETX_TIMER_PS33, DRX_RETX_TIMER_PS0, |
| 371 | DRX_RETX_TIMER_PS40, DRX_RETX_TIMER_PS64, DRX_RETX_TIMER_PS80, DRX_RETX_TIMER_PS96, |
| 372 | DRX_RETX_TIMER_PS112, DRX_RETX_TIMER_PS128, DRX_RETX_TIMER_PS160, DRX_RETX_TIMER_PS320 |
| 373 | } errc_emac_drx_retx_timer_enum; |
| 374 | |
| 375 | typedef enum |
| 376 | { |
| 377 | DRX_UL_RETX_TIMER_PS0, DRX_UL_RETX_TIMER_PS1, DRX_UL_RETX_TIMER_PS2, DRX_UL_RETX_TIMER_PS4, DRX_UL_RETX_TIMER_PS6, DRX_UL_RETX_TIMER_PS8, |
| 378 | DRX_UL_RETX_TIMER_PS16, DRX_UL_RETX_TIMER_PS24, DRX_UL_RETX_TIMER_PS33, DRX_UL_RETX_TIMER_PS40, DRX_UL_RETX_TIMER_PS64, |
| 379 | DRX_UL_RETX_TIMER_PS80, DRX_UL_RETX_TIMER_PS96, DRX_UL_RETX_TIMER_PS112, DRX_UL_RETX_TIMER_PS128, DRX_UL_RETX_TIMER_PS160, DRX_UL_RETX_TIMER_PS320 |
| 380 | } errc_emac_drx_ul_retx_timer_enum; |
| 381 | |
| 382 | typedef enum |
| 383 | { |
| 384 | LONG_DRX_CYCLE_10, LONG_DRX_CYCLE_20, LONG_DRX_CYCLE_32, LONG_DRX_CYCLE_40, LONG_DRX_CYCLE_64, |
| 385 | LONG_DRX_CYCLE_80, LONG_DRX_CYCLE_128, LONG_DRX_CYCLE_160, LONG_DRX_CYCLE_256, LONG_DRX_CYCLE_320, |
| 386 | LONG_DRX_CYCLE_512, LONG_DRX_CYCLE_640, LONG_DRX_CYCLE_1024, LONG_DRX_CYCLE_1280, LONG_DRX_CYCLE_2048, |
| 387 | LONG_DRX_CYCLE_2560, LONG_DRX_CYCLE_60, LONG_DRX_CYCLE_70 |
| 388 | } errc_emac_long_drx_cycle_enum; |
| 389 | |
| 390 | typedef enum |
| 391 | { |
| 392 | SHORT_DRX_CYCLE_2, SHORT_DRX_CYCLE_5, SHORT_DRX_CYCLE_8, SHORT_DRX_CYCLE_10, SHORT_DRX_CYCLE_16, |
| 393 | SHORT_DRX_CYCLE_20, SHORT_DRX_CYCLE_32, SHORT_DRX_CYCLE_40, SHORT_DRX_CYCLE_64, SHORT_DRX_CYCLE_80, |
| 394 | SHORT_DRX_CYCLE_128, SHORT_DRX_CYCLE_160, SHORT_DRX_CYCLE_256, SHORT_DRX_CYCLE_320, SHORT_DRX_CYCLE_512, |
| 395 | SHORT_DRX_CYCLE_640, SHORT_DRX_CYCLE_4 |
| 396 | } errc_emac_short_drx_cycle_enum; |
| 397 | |
| 398 | |
| 399 | |
| 400 | typedef enum |
| 401 | { |
| 402 | PERIODIC_PHR_10, PERIODIC_PHR_20, PERIODIC_PHR_50, PERIODIC_PHR_100, |
| 403 | PERIODIC_PHR_200, PERIODIC_PHR_500, PERIODIC_PHR_1000, PERIODIC_PHR_INF |
| 404 | } errc_emac_periodic_phr_timer_enum; |
| 405 | |
| 406 | typedef enum |
| 407 | { |
| 408 | PROHIBIT_PHR_0, PROHIBIT_PHR_10, PROHIBIT_PHR_20, PROHIBIT_PHR_50, |
| 409 | PROHIBIT_PHR_100, PROHIBIT_PHR_200, PROHIBIT_PHR_500, PROHIBIT_PHR_1000 |
| 410 | } errc_emac_prohibit_phr_timer_enum; |
| 411 | |
| 412 | typedef enum |
| 413 | { |
| 414 | DL_PATHLOSS_CHANGE_1, DL_PATHLOSS_CHANGE_3, DL_PATHLOSS_CHANGE_6, DL_PATHLOSS_CHANGE_INF |
| 415 | } errc_emac_phr_dl_pathloss_change_enum; |
| 416 | |
| 417 | typedef enum |
| 418 | { |
| 419 | BRQ_PROHIBIT_S0, BRQ_PROHIBIT_S0DOT4, BRQ_PROHIBIT_S0DOT8, BRQ_PROHIBIT_S1DOT6, |
| 420 | BRQ_PROHIBIT_S3, BRQ_PROHIBIT_S6, BRQ_PROHIBIT_S12, BRQ_PROHIBIT_S30 |
| 421 | } errc_emac_brq_prohibit_timer_enum; |
| 422 | |
| 423 | typedef enum |
| 424 | { |
| 425 | ERRC_EMAC_TA_INFO_REQ_TYPE_STOP, |
| 426 | ERRC_EMAC_TA_INFO_REQ_TYPE_START |
| 427 | } errc_emac_ta_info_req_type_enum; |
| 428 | |
| 429 | typedef enum |
| 430 | { |
| 431 | EMAC_ERRC_RA_ERROR_ERRC_TRIGGER = 0, |
| 432 | EMAC_ERRC_RA_ERROR_NON_ERRC_TRIGGER = 0x01 |
| 433 | } emac_errc_ra_error_cause_enum; |
| 434 | |
| 435 | typedef enum |
| 436 | { |
| 437 | EMAC_ERRC_L1_REL_CAUSE_TA = 0, |
| 438 | EMAC_ERRC_L1_REL_CAUSE_SR = 0x01, |
| 439 | } emac_errc_ul_rel_cause_enum; |
| 440 | |
| 441 | typedef enum |
| 442 | { |
| 443 | EMAC_ERRC_DRX_INC_GAP_REQ_TYPE_STOP, |
| 444 | EMAC_ERRC_DRX_INC_GAP_REQ_TYPE_START |
| 445 | } errc_emac_drx_inc_gap_req_type_enum; |
| 446 | |
| 447 | typedef enum |
| 448 | { |
| 449 | ERRC_EMAC_CCCH_CAUSE_CONN_REQ = 0, |
| 450 | ERRC_EMAC_CCCH_CAUSE_REEST_REQ = 0x01 |
| 451 | } errc_emac_ccch_cause_enum; |
| 452 | |
| 453 | typedef enum |
| 454 | { |
| 455 | EMAC_SCELL_DEACTIVATION_TIMER_INFINITY, // defalut value |
| 456 | EMAC_SCELL_DEACTIVATION_TIMER_RF2, |
| 457 | EMAC_SCELL_DEACTIVATION_TIMER_RF4, |
| 458 | EMAC_SCELL_DEACTIVATION_TIMER_RF8, |
| 459 | EMAC_SCELL_DEACTIVATION_TIMER_RF16, |
| 460 | EMAC_SCELL_DEACTIVATION_TIMER_RF32, |
| 461 | EMAC_SCELL_DEACTIVATION_TIMER_RF64, |
| 462 | EMAC_SCELL_DEACTIVATION_TIMER_RF128 |
| 463 | }emac_scell_deactivation_timer_enum; |
| 464 | |
| 465 | typedef enum |
| 466 | { |
| 467 | ERRC_EMAC_TTI_BUNDLING_DISABLED, |
| 468 | ERRC_EMAC_TTI_BUNDLING_NORMAL, |
| 469 | ERRC_EMAC_TTI_BUNDLING_ENHANCED_FDD |
| 470 | } errc_emac_tti_bundling_mode_enum; |
| 471 | |
| 472 | #if defined(__XL1SIM_EL1__) |
| 473 | // old struct for XL1Sim test case use |
| 474 | typedef struct |
| 475 | { |
| 476 | errc_emac_ra_pow_ramping_enum power_ramping_step; |
| 477 | errc_emac_preamble_init_pow_enum preamble_init_rec_target_power; |
| 478 | errc_emac_preamble_tx_max_enum preamble_trans_max; |
| 479 | } errc_emac_ul_scell_params_struct; |
| 480 | #endif |
| 481 | |
| 482 | typedef struct |
| 483 | { |
| 484 | kal_uint8 scell_index; |
| 485 | errc_emac_ra_pow_ramping_enum power_ramping_step; |
| 486 | errc_emac_preamble_init_pow_enum preamble_init_rec_target_power; |
| 487 | errc_emac_preamble_tx_max_enum preamble_trans_max; |
| 488 | } errc_emac_scell_ul_params_struct; |
| 489 | |
| 490 | typedef enum |
| 491 | { |
| 492 | ERRC_EMAC_SCELL_NOT_CONFIGURED = 0, |
| 493 | ERRC_EMAC_SCELL_ALL_DEACTIVATED = 1, |
| 494 | ERRC_EMAC_1_SCELL_ACTIVATED = 2 |
| 495 | }errc_emac_ca_activate_state_enum; |
| 496 | |
| 497 | typedef struct |
| 498 | { |
| 499 | errc_emac_ra_preamble_nb_enum ra_preamble_nb_index; |
| 500 | errc_emac_ra_pow_ramping_enum ra_pow_ramping_index; |
| 501 | errc_emac_preamble_init_pow_enum ra_preamble_init_pow_index; |
| 502 | errc_emac_preamble_tx_max_enum ra_preamble_tx_max_index; |
| 503 | errc_emac_rar_wnd_sz_enum ra_rar_wnd_sz_index; |
| 504 | errc_emac_cr_timer_enum ra_cr_timer_index; |
| 505 | |
| 506 | kal_uint8 ra_msg3_tx_max; |
| 507 | |
| 508 | kal_bool group_a_valid; |
| 509 | errc_emac_ra_group_a_sz_enum ra_group_a_sz_index; |
| 510 | errc_emac_ra_msg_sz_group_a_enum ra_msg_sz_group_a_index; |
| 511 | errc_emac_msg_pow_offset_group_b_enum ra_msg_pow_offset_group_b_index; |
| 512 | kal_bool ra_dedicated_valid; |
| 513 | kal_uint8 rapid; |
| 514 | kal_uint8 prach_mask; |
| 515 | |
| 516 | #if defined(__XL1SIM_EL1__) |
| 517 | // old struct for XL1Sim test case use |
| 518 | errc_emac_ul_scell_params_struct ul_scell_params; |
| 519 | kal_bool ul_scell_params_are_valid; |
| 520 | #else |
| 521 | errc_emac_scell_ul_params_struct scell_params[ERRC_EMAC_MAX_SCELL_NB]; |
| 522 | kal_uint8 valid_scell_param_num; |
| 523 | #endif |
| 524 | } emac_ra_config_info_struct; |
| 525 | |
| 526 | |
| 527 | typedef struct |
| 528 | { |
| 529 | errc_emac_max_harq_tx_enum max_harq_tx_index; |
| 530 | errc_emac_periodic_bsr_timer_enum periodic_bsr_timer_index; |
| 531 | errc_emac_retx_bsr_timer_enum retx_bsr_timer_index; |
| 532 | errc_emac_tti_bundling_mode_enum tti_bundling; |
| 533 | |
| 534 | kal_bool extended_bsr_sizes; |
| 535 | } emac_sched_config_info_struct; |
| 536 | |
| 537 | |
| 538 | |
| 539 | typedef struct |
| 540 | { |
| 541 | errc_emac_on_duration_timer_enum on_duration_timer_index; |
| 542 | errc_emac_drx_inactivity_timer_enum drx_inactivity_timer_index; |
| 543 | errc_emac_drx_retx_timer_enum drx_retx_timer_index; |
| 544 | errc_emac_long_drx_cycle_enum long_drx_cycle_index; |
| 545 | |
| 546 | kal_bool drx_ul_retx_timer_valid; |
| 547 | errc_emac_drx_ul_retx_timer_enum drx_ul_retx_timer_index; |
| 548 | |
| 549 | kal_bool short_cycle_valid; |
| 550 | errc_emac_short_drx_cycle_enum short_drx_cycle_index; |
| 551 | kal_uint8 drx_short_cycle_timer; |
| 552 | |
| 553 | kal_uint16 drx_start_offset; |
| 554 | } emac_drx_config_info_struct; |
| 555 | |
| 556 | |
| 557 | typedef struct |
| 558 | { |
| 559 | errc_emac_periodic_phr_timer_enum periodic_phr_timer_index; |
| 560 | errc_emac_prohibit_phr_timer_enum prohibit_phr_timer_index; |
| 561 | errc_emac_phr_dl_pathloss_change_enum phr_dl_pathloss_change_index; |
| 562 | |
| 563 | kal_bool extended_phr; |
| 564 | } emac_phr_config_info_struct; |
| 565 | |
| 566 | |
| 567 | typedef struct |
| 568 | { |
| 569 | kal_bool sr_mask; //r9 sr mask |
| 570 | kal_uint8 lcid; |
| 571 | kal_uint8 rb_idx; |
| 572 | errc_el2_rbid_enum rb_id; |
| 573 | |
| 574 | ///RB direction |
| 575 | ///UL: 0x01 DL: 0x02 Bi-direction 0x03 |
| 576 | ///EMAC_RB_UL_MASK 0x01 |
| 577 | ///EMAC_RB_DL_MASK 0x02 |
| 578 | kal_uint8 direction; |
| 579 | kal_uint8 lcg; |
| 580 | kal_uint8 ul_priority; |
| 581 | kal_bool logical_channel_sr_prohibit_timer_is_used; |
| 582 | kal_bool logical_channel_brq_prohibit_timer_index_is_valid; |
| 583 | errc_emac_brq_prohibit_timer_enum logical_channel_brq_prohibit_timer_index; |
| 584 | } errc_emac_open_rb_struct; |
| 585 | |
| 586 | typedef struct |
| 587 | { |
| 588 | kal_uint8 rb_idx; |
| 589 | errc_el2_rbid_enum rb_id; |
| 590 | kal_uint8 direction; |
| 591 | } errc_emac_close_rb_struct; |
| 592 | |
| 593 | // MSG_ID_ERRC_EMAC_MEAS_GAP_IND |
| 594 | typedef struct |
| 595 | { |
| 596 | LOCAL_PARA_HDR |
| 597 | kal_uint8 gap_pattern; //0: gap=40, 1: gap=80 |
| 598 | kal_uint8 offset; //0xFF: no gap |
| 599 | } errc_emac_meas_gap_ind_struct; |
| 600 | |
| 601 | /* CHM MBMS support start */ |
| 602 | typedef enum |
| 603 | { |
| 604 | ERRC_EMAC_CONFIG_TYPE_ALL = 0, // configure SCH only, or configure both SCH+MCH |
| 605 | ERRC_EMAC_CONFIG_TYPE_MCH_ONLY = 1 // configure MCH only |
| 606 | } errc_emac_config_type_enum; |
| 607 | |
| 608 | typedef struct |
| 609 | { |
| 610 | kal_uint8 mbsfn_area_id; // 0~255 |
| 611 | |
| 612 | // numbered by eRRC and not from NW, |
| 613 | // If one carrier is supported, range 0~7 |
| 614 | // If two carriers are supported, range 0~15 |
| 615 | kal_uint8 mcch_idx; |
| 616 | } errc_emac_open_mcch_struct; |
| 617 | |
| 618 | typedef struct |
| 619 | { |
| 620 | kal_uint8 mbsfn_area_id; // 0~255, currently for debug purpose only |
| 621 | kal_uint8 mcch_idx; |
| 622 | } errc_emac_close_mcch_struct; |
| 623 | |
| 624 | typedef struct |
| 625 | { |
| 626 | kal_uint8 mbsfn_area_id; // 0~255 |
| 627 | kal_uint8 pmch_id; // 0~15, numbered by eRRC and not from NW (directly use the index in asn) |
| 628 | kal_uint8 lcid; // 0~28 |
| 629 | kal_uint8 mrb_idx; // numbered by eRRC, The range of mrb_idx depends on L2 HW capability |
| 630 | } errc_emac_open_mrb_struct; |
| 631 | |
| 632 | typedef struct |
| 633 | { |
| 634 | kal_uint8 mbsfn_area_id; // 0~255, currently for debug purpose only |
| 635 | kal_uint8 pmch_id; // 0~15, currently for debug purpose only |
| 636 | kal_uint8 lcid; // 0~28, currently for debug purpose only |
| 637 | kal_uint8 mrb_idx; // numbered by eRRC, The range of mrb_idx depends on L2 HW capability |
| 638 | } errc_emac_close_mrb_struct; |
| 639 | |
| 640 | /* CHM MBMS support end */ |
| 641 | |
| 642 | typedef struct |
| 643 | { |
| 644 | kal_uint8 stag_id; |
| 645 | errc_emac_ta_timer_enum s_tag_ta_timer; |
| 646 | } errc_emac_stag_timer_info_struct; |
| 647 | |
| 648 | // MSG_ID_ERRC_EMAC_CONFIG_REQ |
| 649 | typedef struct |
| 650 | { |
| 651 | LOCAL_PARA_HDR |
| 652 | errc_emac_config_type_enum config_type; //configure either MCH only or all |
| 653 | errc_emac_config_cause_enum cause; //HO or RESET or not |
| 654 | errc_emac_ta_timer_enum ta_timer_index; //TA timer index |
| 655 | kal_uint8 sr_prohibit_timer; //SR prohibit timer index |
| 656 | kal_uint8 open_rb_nb; //number of open RB |
| 657 | kal_uint8 close_rb_nb; //number of close RB |
| 658 | errc_emac_open_rb_struct open_rb[ERRC_EMAC_MAX_RB_NB]; |
| 659 | errc_emac_close_rb_struct close_rb[ERRC_EMAC_MAX_RB_NB]; |
| 660 | |
| 661 | errc_emac_icd_event_cause_enum icd_event_cause; //ICD MAC_RESET_EVENT and MAC_CONFIGURATION_EVENT |
| 662 | |
| 663 | //EMAC_CONFIG_INFO_RA_MASK |
| 664 | //EMAC_CONFIG_INFO_SCHED_MASK |
| 665 | //EMAC_CONFIG_INFO_DRX_MASK |
| 666 | //EMAC_CONFIG_INFO_PHR_MASK |
| 667 | //EMAC_CONFIG_INFP_CRNTI_MASK |
| 668 | kal_uint8 info_bitmap; |
| 669 | emac_ra_config_info_struct ra_config_info; |
| 670 | emac_sched_config_info_struct schd_config_info; |
| 671 | emac_drx_config_info_struct drx_config_info; |
| 672 | emac_phr_config_info_struct phr_config_info; |
| 673 | kal_uint16 c_rnti; //new C-RNTI value |
| 674 | kal_bool dl_data_sus_flg; |
| 675 | |
| 676 | emac_scell_deactivation_timer_enum scell_deactivation_timer; |
| 677 | kal_uint8 configured_scell_bitmap; |
| 678 | kal_bool simultaneous_pucch_pusch; |
| 679 | kal_bool pusch_enhancement_mode; |
| 680 | |
| 681 | /* CHM MBMS support start */ |
| 682 | //kal_uint8 open_mcch_nb[MAX_EMBMS_FREQ_SUPPORT]; // for 2 freq |
| 683 | //kal_uint8 close_mcch_nb[MAX_EMBMS_FREQ_SUPPORT]; // for 2 freq |
| 684 | //errc_emac_open_mcch_struct open_mcch[MAX_EMBMS_FREQ_SUPPORT][MAX_EMBMS_MCCH_SUPPORT]; |
| 685 | //errc_emac_close_mcch_struct close_mcch[MAX_EMBMS_FREQ_SUPPORT][MAX_EMBMS_MCCH_SUPPORT]; |
| 686 | |
| 687 | //kal_uint8 open_mrb_nb[MAX_EMBMS_FREQ_SUPPORT]; // for 2 freq |
| 688 | //kal_uint8 close_mrb_nb[MAX_EMBMS_FREQ_SUPPORT]; // for 2 freq |
| 689 | //errc_emac_open_mrb_struct open_mrb[MAX_EMBMS_FREQ_SUPPORT][MAX_EMBMS_MRB_SUPPORT]; |
| 690 | //errc_emac_close_mrb_struct close_mrb[MAX_EMBMS_FREQ_SUPPORT][MAX_EMBMS_MRB_SUPPORT]; |
| 691 | /* CHM MBMS support end */ |
| 692 | |
| 693 | #if defined(__XL1SIM_EL1__) |
| 694 | // old struct for XL1Sim test case use |
| 695 | errc_emac_ta_timer_enum s_tag_ta_timer; |
| 696 | kal_bool s_tag_ta_timer_is_valid; |
| 697 | #else |
| 698 | kal_uint8 s_tag_ta_timer_valid_nb; //number of valid stag timer info nb |
| 699 | errc_emac_stag_timer_info_struct s_stag_ta_timer_info[ERRC_EMAC_MAX_STAG_NB]; |
| 700 | #endif |
| 701 | |
| 702 | kal_bool logical_channel_sr_prohibit_timer_is_valid; |
| 703 | kal_uint16 logical_channel_sr_prohibit_timer; /* Value in subframes */ |
| 704 | |
| 705 | } errc_emac_config_req_struct; |
| 706 | |
| 707 | typedef struct |
| 708 | { |
| 709 | LOCAL_PARA_HDR |
| 710 | errc_el2_cfg_result_enum result; |
| 711 | } errc_emac_config_cnf_struct; |
| 712 | |
| 713 | typedef struct |
| 714 | { |
| 715 | LOCAL_PARA_HDR |
| 716 | emac_errc_ra_error_cause_enum cause; |
| 717 | } errc_emac_ra_error_ind_struct; |
| 718 | |
| 719 | typedef struct |
| 720 | { |
| 721 | LOCAL_PARA_HDR |
| 722 | kal_uint16 crnti; |
| 723 | kal_uint8 preamble_tx_nb; |
| 724 | kal_bool contention_ind; |
| 725 | } errc_emac_contention_ind_struct; |
| 726 | |
| 727 | typedef struct |
| 728 | { |
| 729 | LOCAL_PARA_HDR |
| 730 | kal_uint8 preamble_tx_nb; |
| 731 | kal_bool contention_ind; |
| 732 | } errc_emac_ra_info_ind_struct; |
| 733 | |
| 734 | typedef struct |
| 735 | { |
| 736 | LOCAL_PARA_HDR |
| 737 | kal_uint8 preamble_tx_nb; |
| 738 | kal_bool contention_ind; |
| 739 | kal_bool max_txpower_reached; |
| 740 | } errc_emac_estfail_report_cnf_struct; |
| 741 | |
| 742 | typedef struct |
| 743 | { |
| 744 | LOCAL_PARA_HDR |
| 745 | emac_errc_ul_rel_cause_enum cause; |
| 746 | kal_bool s_tag_is_valid; |
| 747 | kal_uint8 s_tag; |
| 748 | } errc_emac_l1_ul_rel_ind_struct; |
| 749 | |
| 750 | typedef struct |
| 751 | { |
| 752 | LOCAL_PARA_HDR |
| 753 | kal_uint8 ccch_size; |
| 754 | kal_uint8 ccch[6]; |
| 755 | errc_emac_ccch_cause_enum cause; |
| 756 | } errc_emac_ccch_data_req_struct; |
| 757 | |
| 758 | /* Need to remove for TK6291 U4G */ |
| 759 | typedef struct |
| 760 | { |
| 761 | LOCAL_PARA_HDR |
| 762 | kal_uint32 paging_ctrl_info; |
| 763 | qbm_gpd* p_rgpd; |
| 764 | ABS_TICK_TIME proc_abs_time; |
| 765 | lte_cell_time proc_lte_time; |
| 766 | } errc_emac_paging_ind_struct; |
| 767 | |
| 768 | |
| 769 | typedef struct |
| 770 | { |
| 771 | LOCAL_PARA_HDR |
| 772 | kal_uint32 si_ctrl_info; |
| 773 | qbm_gpd* p_rgpd; |
| 774 | ABS_TICK_TIME proc_abs_time; |
| 775 | lte_cell_time proc_lte_time; |
| 776 | |
| 777 | kal_uint8 carrier_info; //Carrier Index, only valid for 0 and 1 |
| 778 | } errc_emac_si_ind_struct; |
| 779 | |
| 780 | typedef struct |
| 781 | { |
| 782 | LOCAL_PARA_HDR |
| 783 | |
| 784 | void* p_data; //93, start address of SRB data in VRB |
| 785 | kal_uint32 data_len; //93, length of SRB data in VRB |
| 786 | |
| 787 | } errc_emac_ccch_data_ind_struct; |
| 788 | |
| 789 | typedef struct |
| 790 | { |
| 791 | LOCAL_PARA_HDR |
| 792 | errc_emac_ta_info_req_type_enum req_type; |
| 793 | } errc_emac_ta_info_req_struct; |
| 794 | |
| 795 | typedef struct |
| 796 | { |
| 797 | kal_uint32 ta; |
| 798 | kal_uint8 s_tag_id; |
| 799 | } errc_emac_s_tag_ta_struct; |
| 800 | |
| 801 | typedef struct |
| 802 | { |
| 803 | LOCAL_PARA_HDR |
| 804 | kal_bool is_valid; |
| 805 | kal_uint32 ta; |
| 806 | kal_bool s_tag_ta_is_valid; |
| 807 | errc_emac_s_tag_ta_struct s_tag_ta; |
| 808 | } errc_emac_ta_info_cnf_struct; |
| 809 | |
| 810 | typedef struct |
| 811 | { |
| 812 | LOCAL_PARA_HDR |
| 813 | kal_uint32 ta; |
| 814 | kal_uint8 tag_id; |
| 815 | } errc_emac_ta_info_ind_struct; |
| 816 | |
| 817 | typedef struct |
| 818 | { |
| 819 | LOCAL_PARA_HDR |
| 820 | kal_uint8 tag_id; |
| 821 | } errc_emac_ta_info_invalid_ind_struct; |
| 822 | |
| 823 | typedef struct |
| 824 | { |
| 825 | LOCAL_PARA_HDR |
| 826 | errc_emac_drx_inc_gap_req_type_enum req_type; |
| 827 | kal_uint32 max_interval; |
| 828 | } errc_emac_drx_inc_gap_req_struct; |
| 829 | |
| 830 | typedef struct |
| 831 | { |
| 832 | LOCAL_PARA_HDR |
| 833 | kal_uint8 scell_activate_bmp_dl; |
| 834 | kal_uint8 scell_activate_bmp_ul; |
| 835 | } errc_emac_ca_activate_ind_struct; |
| 836 | |
| 837 | |
| 838 | typedef enum |
| 839 | { |
| 840 | ERRC_EMAC_SUPPORT_REL_R9, |
| 841 | ERRC_EMAC_SUPPORT_REL_R10, |
| 842 | ERRC_EMAC_SUPPORT_REL_R11, |
| 843 | ERRC_EMAC_SUPPORT_REL_R12, |
| 844 | ERRC_EMAC_SUPPORT_REL_R13, |
| 845 | ERRC_EMAC_SUPPORT_REL_INVALID |
| 846 | } errc_emac_support_release_enum; |
| 847 | |
| 848 | |
| 849 | typedef enum |
| 850 | { |
| 851 | ERRC_EMAC_DL_QAM_64 = 0, |
| 852 | ERRC_EMAC_DL_QAM_256 = 1, |
| 853 | ERRC_EMAC_DL_QAM_NUM = 2, |
| 854 | ERRC_EMAC_DL_QAM_INVALID |
| 855 | } errc_emac_dl_modulation_enum; |
| 856 | |
| 857 | |
| 858 | typedef enum |
| 859 | { |
| 860 | ERRC_EMAC_UL_QAM_16 = 0, |
| 861 | ERRC_EMAC_UL_QAM_64 = 1, |
| 862 | ERRC_EMAC_UL_QAM_256 = 2, |
| 863 | ERRC_EMAC_UL_QAM_NUM = 3, |
| 864 | ERRC_EMAC_UL_QAM_INVALID |
| 865 | } errc_emac_ul_modulation_enum; |
| 866 | |
| 867 | typedef enum |
| 868 | { |
| 869 | ERRC_EMAC_DL_CAT_1 = 0, |
| 870 | ERRC_EMAC_DL_CAT_2 = 1, |
| 871 | ERRC_EMAC_DL_CAT_3 = 2, |
| 872 | ERRC_EMAC_DL_CAT_4 = 3, |
| 873 | ERRC_EMAC_DL_CAT_6 = 4, |
| 874 | ERRC_EMAC_DL_CAT_7 = 5, |
| 875 | ERRC_EMAC_DL_CAT_9 = 6, |
| 876 | ERRC_EMAC_DL_CAT_10 = 7, |
| 877 | ERRC_EMAC_DL_CAT_11 = 8, |
| 878 | ERRC_EMAC_DL_CAT_12 = 9, |
| 879 | ERRC_EMAC_DL_CAT_13 = 10, |
| 880 | ERRC_EMAC_DL_CAT_16 = 11, |
| 881 | ERRC_EMAC_DL_CAT_NUM = 12, |
| 882 | ERRC_EMAC_DL_CAT_INVALID |
| 883 | } errc_emac_dl_category_enum; |
| 884 | |
| 885 | typedef enum |
| 886 | { |
| 887 | ERRC_EMAC_UL_CAT_1 = 0, |
| 888 | ERRC_EMAC_UL_CAT_2 = 1, |
| 889 | ERRC_EMAC_UL_CAT_3 = 2, |
| 890 | ERRC_EMAC_UL_CAT_4 = 3, |
| 891 | ERRC_EMAC_UL_CAT_5 = 4, |
| 892 | ERRC_EMAC_UL_CAT_6 = 5, |
| 893 | ERRC_EMAC_UL_CAT_7 = 6, |
| 894 | ERRC_EMAC_UL_CAT_9 = 7, |
| 895 | ERRC_EMAC_UL_CAT_10 = 8, |
| 896 | ERRC_EMAC_UL_CAT_11 = 9, |
| 897 | ERRC_EMAC_UL_CAT_12 = 10, |
| 898 | ERRC_EMAC_UL_CAT_13 = 11, |
| 899 | ERRC_EMAC_UL_CAT_15 = 12, |
| 900 | ERRC_EMAC_UL_CAT_NUM = 13, |
| 901 | ERRC_EMAC_UL_CAT_INVALID |
| 902 | } errc_emac_ul_category_enum; |
| 903 | |
| 904 | typedef struct |
| 905 | { |
| 906 | LOCAL_PARA_HDR |
| 907 | |
| 908 | // Support Release |
| 909 | errc_emac_support_release_enum support_release; |
| 910 | |
| 911 | // Capability |
| 912 | errc_emac_dl_category_enum dl_category; |
| 913 | errc_emac_ul_category_enum ul_category; |
| 914 | errc_emac_dl_modulation_enum highest_dl_modulation; |
| 915 | errc_emac_ul_modulation_enum highest_ul_modulation; |
| 916 | |
| 917 | // Features |
| 918 | kal_bool recommendBitRate_enable; |
| 919 | |
| 920 | } errc_emac_support_capability_ind_struct; |
| 921 | |
| 922 | #endif /*ERRC_EMAC_INTERFACE_H*/ |