blob: bb4a5131b271d7af6a8e05c357174111b80a6faa [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001/*****************************************************************************
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) 2016
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 CONSKAL_TRUED 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#ifndef _VAL_NVRAM_H_
37
38#define _VAL_NVRAM_H_ 1
39
40/*****************************************************************************
41 * Includes
42 ****************************************************************************/
43#include "kal_general_types.h"
44#include "valattune.h"
45
46#define NUM_BASESSD 16
47#define SSD_DATA_SIZE 1000 /* Total size of scrambling alogrithm contents */
48#define VAL_SMS_CBS_CHA_MAX 4
49#if defined (__TC10__) && defined (__TC10_IPC_CDMA_SUPPORT__)
50#define VAL_ERI_MAX_SIZE 4096 /* Assuming 30 ERI Table entries */
51#endif
52
53typedef enum
54{
55 CP_VAL_GPS_PRIVACY_SETTING_VALUE_UNKNOWN = 0,
56 CP_VAL_GPS_PRIVACY_SETTING_VALUE_E911_ONLY,
57 CP_VAL_GPS_PRIVACY_SETTING_VALUE_LOCATION_ON,
58 CP_VAL_GPS_PRIVACY_SETTING_VALUE_LOCATION_MI_ONLY,
59 CP_VAL_GPS_PRIVACY_SETTING_VALUE_LOCATION_MT_ONLY
60}ValGpsPrivacySettingT;
61typedef struct
62{
63 kal_uint16 Year;
64 kal_uint16 Month;
65 kal_uint16 DayOfWeek;
66 kal_uint16 Day;
67 kal_uint16 Hour;
68 kal_uint16 Minute;
69 kal_uint16 Second;
70 kal_uint16 Milliseconds;
71
72 /*; GPS week as the number of whole weeks since GPS time zero*/
73 kal_uint32 GPSweek;
74 /*; GPS time of week in milliseconds*/
75 kal_uint32 GPSTimeOfWeek;
76} ValGpsSystemTimeT;
77
78typedef enum
79{
80 CP_VAL_GPS_SECURITY_DISABLE,
81 CP_VAL_GPS_SECURITY_ENABLE
82}ValGpsSecOperE;
83typedef struct {
84
85 kal_int32 delay1X;
86 kal_int32 delayDO;
87}ValGpsRfDelayStruct;
88
89typedef struct {
90 ValGpsPrivacySettingT LocationMode;
91
92 kal_uint8 BaseSSD[NUM_BASESSD];
93 /*kal_uint8 SSD[NUM_BASESSD];*/
94 ValGpsSystemTimeT UTCTime; /*The timestamp indicates when the BaseSSD was created. The timestamp will be in UTC time*/
95
96 /*kal_uint32 ScramblingCode;*/
97 kal_bool bAddrValid;
98 kal_bool IPType; /*0: IPV4; 1: IPV6*/
99 kal_uint32 Ipv4Addr;
100 kal_uint32 Ipv6Addr[4];
101
102 kal_bool bURLValid;
103 kal_uint8 URLAddr[256];
104
105 kal_uint32 PortNum;
106
107 kal_uint32 EphUpdateTime;
108 kal_uint32 AlmUpdateTime;
109 kal_uint8 ssdData[SSD_DATA_SIZE];
110
111 ValGpsSecOperE Status;
112
113 kal_uint32 ValMpcAddr;
114 kal_uint16 ValMpcPort;
115
116 kal_uint8 SIP_NAI[72];
117 kal_uint8 SIP_PASSWORD[16];
118
119 ValGpsRfDelayStruct RfDelay[5];
120}GpsDbmDataParms;
121
122/* atc mod */
123#define ATC_MAX_CFG_STR_SIZE 249 /* MAX_CFG_LEN in Ai_data.h */
124#define ATC_MAX_FDL_STR_SIZE 95 /* Sect 4.4.3 IS-707-A.3 */
125#define ATC_MAX_GCAP_STR_SIZE 64 /* Ai_cmd is using 65535 bytes!! */
126#define ATC_MAX_FLI_STR_SIZE 21 /* MAX_FLI_LEN in Ai_data.h */
127#define ATC_MAX_FPA_STR_SIZE 21 /* MAX_FPA_LEN in Ai_data.h */
128#define ATC_MAX_FPI_STR_SIZE 21 /* MAX_FPI_LEN in Ai_data.h */
129#define ATC_MAX_FPW_STR_SIZE 21 /* MAX_FPW_LEN in Ai_data.h */
130#define ATC_MAX_FSA_STR_SIZE 21 /* MAX_FSA_LEN in Ai_data.h */
131#define ATC_MAX_GMI_STR_SIZE 64 /* Sect 4.1.1 IS-131 says 2048 */
132#define ATC_MAX_GMM_STR_SIZE 64 /* Sect 4.1.2 IS-131 says 2048 */
133#define ATC_MAX_GMR_STR_SIZE 64 /* Sect 4.1.3 IS-131 says 2048 */
134#define ATC_MAX_HWV_STR_SIZE 64
135#define ATC_MAX_GOI_STR_SIZE 64 /* Sect 4.1.4 IS-131 says 2048 */
136#define ATC_MAX_GSN_STR_SIZE 64 /* Sect 4.1.5 IS-131 says 2048 */
137
138#define ATC_MAX_FIF_LEN 90
139
140#define DEFAULT_FCC_VR 0
141#define DEFAULT_FCC_BR 0
142#define DEFAULT_FCC_WD 0
143#define DEFAULT_FCC_LN 0
144#define DEFAULT_FCC_DF 0
145#define DEFAULT_FCC_EC 0
146#define DEFAULT_FCC_BF 0
147#define DEFAULT_FCC_ST 0
148
149#define DEFAULT_FCR 0
150
151#define DEFAULT_FFC_VRC 0
152#define DEFAULT_FFC_DFC 0
153#define DEFAULT_FFC_LNC 0
154#define DEFAULT_FFC_WDC 0
155
156#define DEFAULT_FRQ_PGL 0
157#define DEFAULT_FRQ_CBL 0
158
159#define DEFAULT_MS_CARRIER CR_V34
160#define DEFAULT_MS_AUTOMODE KAL_FALSE
161
162
163#if (AT_DPD_AUTOBAUD_RATES == BR_NONE)
164 #ifndef AT_DEFAULT_IPR
165 #error "AT_DEFAULT_IPR not defined"
166 #endif
167
168 #if ((AT_DEFAULT_IPR == 0) || ((AT_DEFAULT_IPR & AT_DPD_FIXED_RATES) == 0))
169 #error "AT_DEFAULT_IPR definition error"
170 #endif
171
172 #if (AT_DEFAULT_IPR == BR_300)
173 #define IPR_DEFAULT 300
174 #elif (AT_DEFAULT_IPR == BR_1200)
175 #define IPR_DEFAULT 1200
176 #elif (AT_DEFAULT_IPR == BR_2400)
177 #define IPR_DEFAULT 2400
178 #elif (AT_DEFAULT_IPR == BR_4800)
179 #define IPR_DEFAULT 4800
180 #elif (AT_DEFAULT_IPR == BR_9600)
181 #define IPR_DEFAULT 9600
182 #elif (AT_DEFAULT_IPR == BR_19200)
183 #define IPR_DEFAULT 19200
184 #elif (AT_DEFAULT_IPR == BR_38400)
185 #define IPR_DEFAULT 38400
186 #elif (AT_DEFAULT_IPR == BR_57600)
187 #define IPR_DEFAULT 57600
188 #elif (AT_DEFAULT_IPR == BR_115200)
189 #define IPR_DEFAULT 115200UL
190 #elif (AT_DEFAULT_IPR == BR_230400)
191 #define IPR_DEFAULT 230400UL
192 #else
193 #error "AT_DEFAULT_IPR definition error"
194 #endif
195
196#else /* (AT_DPD_AUTOBAUD_RATES != BR_NONE) */
197#define IPR_DEFAULT 0
198#endif
199
200
201#ifdef MTK_CBP
202#define ATC_MAX_REG_TYPE_NUM 7
203#endif
204
205typedef struct
206{
207 kal_uint8 bcs;
208 kal_uint8 bcl;
209} AtcCbc;
210
211
212typedef struct
213{
214 kal_uint8 direction;
215 kal_bool compressionNegotiation;
216 kal_uint16 maxDict;
217 kal_uint8 maxString;
218} AtcDs;
219
220typedef struct
221{
222 kal_uint8 sqm;
223 kal_uint8 fer;
224} AtcCsq;
225
226typedef enum
227{
228 ATC_ABC_Unknown,
229 ATC_ABC_800MHz,
230 ATC_ABC_1900MHz,
231 ATC_NUM_ABCs
232} AtcBandClass;
233
234typedef struct
235{
236 AtcBandClass bandClass;
237 kal_char band;
238 kal_uint16 sid;
239} AtcCss;
240
241typedef struct
242{
243 kal_uint8 breakSelection;
244 kal_bool timed;
245 kal_uint8 defaultLen;
246} AtcEb;
247
248typedef struct
249{
250 kal_uint8 origRqst;
251 kal_uint8 origFbk;
252 kal_uint8 ansFbk;
253} AtcEs;
254
255typedef struct
256{
257 kal_uint8 pendingTd;
258 kal_uint8 pendingRd;
259 kal_uint8 timer;
260} AtcEtbm;
261
262typedef struct
263{
264 kal_bool sub;
265 kal_bool sep;
266 kal_bool pwd;
267} AtcFap;
268
269typedef struct
270{
271 kal_bool vr;
272 kal_uint8 br;
273 kal_uint8 wd;
274 kal_uint8 ln;
275 kal_uint8 df;
276 kal_bool ec;
277 kal_bool bf;
278 kal_uint8 st;
279} AtcFcc;
280
281typedef struct
282{
283 kal_uint8 rq;
284 kal_uint8 tq;
285} AtcFcq;
286
287typedef struct
288{
289 kal_uint8 vrc;
290 kal_uint8 dfc;
291 kal_uint8 lnc;
292 kal_uint8 wdc;
293} AtcFfc;
294
295typedef struct
296{
297 kal_bool rpr;
298 kal_bool tpr;
299 kal_bool idr;
300 kal_bool nsr;
301} AtcFnr;
302
303typedef struct
304{
305 kal_uint8 buf[ATC_MAX_FIF_LEN];
306 kal_uint8 len;
307} AtcFif;
308
309typedef struct
310{
311 kal_uint8 pgl;
312 kal_uint8 cbl;
313} AtcFrq;
314
315typedef struct
316{
317 kal_uint8 format;
318 kal_uint8 parity;
319} AtcIcf;
320
321typedef struct
322{
323 kal_uint8 dceByDte;
324 kal_uint8 dteByDce;
325} AtcIfc;
326typedef struct
327{
328 kal_uint8 carrier;
329 kal_bool automode;
330 kal_uint16 minRate;
331 kal_uint16 maxRate;
332 kal_uint16 minRxRate;
333 kal_uint16 maxRxRate;
334} AtcMs;
335
336typedef struct
337{
338 kal_uint8 mode;
339 kal_uint8 dfltAnsMode;
340 kal_bool fbkTimeEnable;
341} AtcMv18s;
342
343typedef struct
344{
345 kal_uint8 StrChar[ATC_MAX_CFG_STR_SIZE];
346} AtcDbmCfgStrT;
347
348typedef struct
349{
350 kal_uint8 StrChar[ATC_MAX_FDL_STR_SIZE];
351} AtcDbmFdlStrT;
352
353typedef struct
354{
355 kal_uint8 StrChar[ATC_MAX_FLI_STR_SIZE];
356} AtcDbmFliStrT;
357
358typedef struct
359{
360 kal_uint8 StrChar[ATC_MAX_FPA_STR_SIZE];
361} AtcDbmFpaStrT;
362
363typedef struct
364{
365 kal_uint8 StrChar[ATC_MAX_FPI_STR_SIZE];
366} AtcDbmFpiStrT;
367
368typedef struct
369{
370 kal_uint8 StrChar[ATC_MAX_FPW_STR_SIZE];
371} AtcDbmFpwStrT;
372
373typedef struct
374{
375 kal_uint8 StrChar[ATC_MAX_FSA_STR_SIZE];
376} AtcDbmFsaStrT;
377
378typedef struct
379{
380 kal_uint8 StrChar[ATC_MAX_GCAP_STR_SIZE];
381} AtcDbmGcapStrT;
382
383typedef struct
384{
385 kal_uint8 StrChar[ATC_MAX_GMI_STR_SIZE];
386} AtcDbmGmiStrT;
387
388typedef struct
389{
390 kal_uint8 StrChar[ATC_MAX_GMM_STR_SIZE];
391} AtcDbmGmmStrT;
392
393typedef struct
394{
395 kal_uint8 StrChar[ATC_MAX_GMR_STR_SIZE];
396} AtcDbmGmrStrT;
397
398typedef struct
399{
400 kal_uint8 StrChar[ATC_MAX_HWV_STR_SIZE];
401} AtcDbmHwvStrT;
402
403typedef struct
404{
405 kal_uint8 StrChar[ATC_MAX_GOI_STR_SIZE];
406} AtcDbmGoiStrT;
407
408typedef struct
409{
410 kal_uint8 StrChar[ATC_MAX_GSN_STR_SIZE];
411} AtcDbmGsnStrT;
412
413typedef struct
414{
415 kal_uint8 Carrier[8];
416} AtcDbmMaT;
417
418typedef struct
419{
420 kal_uint32 ValActivedBandMask;
421} AtcValActivedBandDataT;
422
423#ifdef MTK_CBP
424typedef struct
425{
426 kal_bool regTypeArray[ATC_MAX_REG_TYPE_NUM];
427} AtcValRegtypeDataT;
428
429#endif
430
431
432typedef struct
433{
434 kal_bool ParamSetFlag;
435 kal_uint8 C109Parameter;
436 kal_uint8 CADParameter;
437 AtcCbc CBCParameter;
438 kal_uint32 CBIPParameter;
439 kal_bool CDRParameter;
440 AtcDs CDSParameter;
441 kal_uint8 CFCParameter;
442 kal_uint32 CMIPParameter;
443 kal_uint8 CMUXParameter;
444 kal_bool CPERParameter;
445 kal_uint16 CPSParameter;
446 kal_bool CPSRParameter;
447 kal_uint8 CQDParameter;
448 kal_bool CRCParameter;
449 kal_uint8 CRMParameter;
450 AtcCsq CSQParameter;
451 AtcCss CSSParameter;
452 kal_uint8 CTAParameter;
453 kal_bool CXTParameter;
454 kal_uint8 C108Parameter;
455 kal_uint8 DParameter;
456 kal_bool DialTypeParameter;
457 kal_bool DRParameter;
458 AtcDs DSParameter;
459 kal_bool EParameter[AT_CHAN_NUM];
460 AtcEb EBParameter;
461 kal_uint8 EFCSParameter;
462 kal_bool ERParameter;
463 AtcEs ESParameter;
464 kal_uint8 ESRParameter;
465 AtcEtbm ETBMParameter;
466 kal_bool FAAParameter;
467 AtcFap FAPParameter;
468 kal_uint8 FBOParameter;
469 kal_bool FBUParameter;
470 AtcFcc FCCParameter;
471 kal_uint8 FCLASSParameter;
472 AtcFcq FCQParameter;
473 kal_bool FCRParameter;
474 kal_uint8 FCTParameter;
475 kal_bool FEAParameter;
476 AtcFfc FFCParameter;
477 kal_uint8 FHSParameter;
478 kal_bool FIEParameter;
479 AtcFcc FISParameter;
480 kal_uint8 FLOParameter;
481 kal_bool FLPParameter;
482 kal_uint8 FMSParameter;
483 AtcFnr FNRParameter;
484 AtcFif FNSParameter;
485 kal_bool FPPParameter;
486 kal_uint8 FPRParameter;
487 kal_uint8 FPSParameter;
488 AtcFrq FRQParameter;
489 kal_uint8 FRYParameter;
490 kal_bool FSPParameter;
491 kal_bool IBCParameter;
492 AtcIcf ICFParameter;
493 AtcIfc IFCParameter;
494 kal_bool ILRRParameter;
495 kal_uint32 IPRParameter;
496 kal_uint8 LParameter;
497 kal_uint8 MParameter;
498 kal_bool MRParameter;
499 AtcMs MSParameter;
500 kal_bool MV18RParameter;
501 AtcMv18s MV18SParameter;
502 kal_bool QParameter[AT_CHAN_NUM];
503 kal_uint8 S0Parameter;
504 kal_uint8 S3Parameter;
505 kal_uint8 S4Parameter;
506 kal_uint8 S5Parameter;
507 kal_uint8 S6Parameter;
508 kal_uint8 S7Parameter;
509 kal_uint8 S8Parameter;
510 kal_uint8 S9Parameter;
511 kal_uint8 S10Parameter;
512 kal_uint8 S11Parameter;
513 kal_bool VParameter[AT_CHAN_NUM];
514 kal_uint8 XParameter;
515 kal_uint8 DMUVParameter;
516 kal_uint8 QCMIPParameter;
517
518 kal_bool QCQNCParameter;
519 kal_uint8 QCMDRParameter;
520
521 AtcDbmCfgStrT CfgStr;
522 AtcDbmFdlStrT FdlStr;
523 AtcDbmFliStrT FliStr;
524 AtcDbmFpaStrT FpaStr;
525 AtcDbmFpiStrT FpiStr;
526 AtcDbmFpwStrT FpwStr;
527 AtcDbmFsaStrT FsaStr;
528 AtcDbmGcapStrT GcapStr;
529 AtcDbmGmiStrT GmiStr;
530 AtcDbmGmmStrT GmmStr;
531 AtcDbmGmrStrT GmrStr;
532 AtcDbmGoiStrT GoiStr;
533 AtcDbmGsnStrT GsnStr;
534 AtcDbmMaT MaTbl;
535 AtcDbmHwvStrT HwvStr;
536 kal_uint8 CMEEParameter;
537#ifdef MTK_DEV_ENGINEER_MODE
538 kal_uint8 EctmMode;
539#ifdef MTK_DEV_C2K_IRAT
540 kal_uint8 EclscMode;
541#endif
542#endif
543#ifdef MTK_CBP
544 kal_bool VPMode; /* voice privacy mode */
545#if !(defined (__TC10__) && defined (__TC10_IPC_CDMA_SUPPORT__))
546 AtcValActivedBandDataT ActivedBand;
547#endif
548 AtcValRegtypeDataT stRegTypeTbl; /*saved value, if enable the registration type
549 RegTypeArray[0], timer based
550 RegTypeArray[1], Power up
551 RegTypeArray[2], Zoned based
552 RegTypeArray[3], Power down
553 RegTypeArray[4], Parameter change
554 RegTypeArray[5], order
555 RegTypeArray[6], distanc based
556 TRUE,enalbe the reg type*/
557
558
559 kal_uint16 uPrefSo;
560 kal_uint8 uPrefRc;
561 kal_bool bEvrcCap;
562 kal_bool bEvrcbSupport; /*True,the EvrcB(SO68) is enable, False, it is disable*/
563 kal_bool bEvrcSupport; /*True,the EVRC(SO3) is enable, False, it is disable*/
564
565#endif
566 kal_uint8 PrefMode; /*for mode switch optimization*/
567 kal_bool bSmsAckOff; /*True,UE does not send SMS Ack, False, UE sends SMS Ack as normal */
568} AtcDbmBinDataT;
569
570typedef struct {
571#define VAL_SMS_DANDCN_MAX_VDNADDR_LEN (32)
572 kal_bool isDanStopShallBeSend;
573 kal_uint8 aucVdnAddr[VAL_SMS_DANDCN_MAX_VDNADDR_LEN+1];
574} ValSmsDanDcnInfoT;
575typedef struct
576{
577#ifdef __TC10_IPC_CDMA_SUPPORT__
578 kal_uint8 AutoRegResult;
579 kal_uint8 AutoRegFlag;
580 kal_uint8 GsmImsi[9];
581 kal_bool IsGsmImsiValid;
582#else
583 kal_uint8 AutoReg;
584 kal_uint16 RegMask;
585#endif
586} ValCustomizedParmDataT;
587
588typedef struct {
589 kal_bool CbsState; /* FALSE, CBS off; TRUE, CBS on */
590 kal_uint32 LanMask; /* lanuage bitmap */
591 kal_uint32 ChaMask[VAL_SMS_CBS_CHA_MAX]; /* channels bitmap */
592 kal_uint32 CmasMask; /* cmas bitmap */
593} ValSmsCbsInfoT;
594
595typedef struct {
596 kal_uint8 mem1;
597} ValMem1ValT;
598
599typedef struct {
600 kal_uint8 vp;
601} ValVpValT;
602
603typedef struct {
604 kal_uint8 enableCnir;
605} ValCnirDataT;
606
607#if defined (__TC10__) && defined (__TC10_IPC_CDMA_SUPPORT__)
608typedef struct
609{
610 kal_uint8 data[VAL_ERI_MAX_SIZE];
611}ValEriTableT;
612#endif
613#endif/* _VAL_NVRAM_H_ */
614