blob: 3774e795bb81cb37aea79cfa222200b284365237 [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#ifndef _CSS_NVRAM_H_
36#define _CSS_NVRAM_H_ 1
37
38/*****************************************************************************
39 * Includes
40 ****************************************************************************/
41#include "kal_general_types.h"
42
43#include "csscust.h"
44
45/*****************************/
46/* CSS Nvram definitions start */
47/*****************************/
48#define PRL_MAX_SIZE 16384
49#define ERI_MAX_SIZE 4096 /* Assuming 30 ERI Table entries */
50
51#define MAX_MANUAL_AVOID_1XSYS 6
52#define MAX_ERI_HOME_VALUES 12
53#define MAX_ERI_INTERNATIONAL_VALUES 30
54
55#define DBM_CSS_1X_SIZE 256 /* storage for CSS 1X parameters */
56#define DBM_CSS_DO_SIZE 256 /* storage for CSS DO parameters */
57#define DBM_CSS_MISC_SIZE 128 /* storage for CSS Misc parameters */
58
59#ifdef MTK_DEV_C2K_IRAT
60typedef struct
61{
62 kal_bool b1xChnlLocked;
63 kal_uint16 rttChnl;
64 kal_bool bDoChnlLocked;
65 kal_uint16 doChnl;
66} cssChannleLockInfo;
67#endif
68
69typedef enum {
70 CSS_1X_T_MAPE_HOME_AVOIDANCE,
71 CSS_1X_T_REDIR_AVOIDANCE,
72 CSS_1X_NUM_T_AVOIDANCE,
73 CSS_1X_NUM_T_AVOIDANCE_MAX = 6 /* enum shall not exceed this value */
74} Css1xAvoidanceTimerTypeT;
75
76typedef enum {
77 CSS_1X_T_BSR_1,
78 CSS_1X_T_BSR_2,
79 CSS_1X_T_BSR_NEWSYS,
80 CSS_1X_T_BSR_REDIR,
81 CSS_1X_T_BSR_CALL,
82#ifdef MTK_CBP
83 CSS_1X_T_BSR_HOLD, /* Old MPSS_ADDITIONAL_TIME timer.*/
84 /* For Sprint,this timer will be started when BSR is expired and reselection is not possible due to HDR activity.*/
85 /*When the timer expires,UE looks for more preferred CDMA systems.*/
86#endif
87 CSS_1X_NUM_T_BSR,
88 CSS_1X_NUM_T_BSR_MAX = 10 /* enum shall not exceed this value */
89} Css1xBsrTimerTypeT;
90
91typedef enum {
92 CSS_DO_T_BSR_1,
93 CSS_DO_T_BSR_2,
94 CSS_DO_T_BSR_HYBRID,
95 CSS_DO_T_BSR_REDIR,
96 CSS_DO_T_BSR_CALL,
97 CSS_DO_T_BSR_HOLD,
98 CSS_DO_NUM_T_BSR,
99 CSS_DO_NUM_T_BSR_MAX = 10 /* enum shall not exceed this value */
100} CssDOBsrTimerTypeT;
101
102typedef enum {
103 CSS_DO_T_SYS_LOST_AVOIDANCE,
104 CSS_DO_T_REDIR_AVOIDANCE,
105 CSS_DO_NUM_T_AVOIDANCE,
106 CSS_DO_NUM_T_AVOIDANCE_MAX = 12 /* enum shall not exceed this value */
107} CssDOAvoidanceTimerTypeT;
108
109typedef struct
110{
111 kal_bool valid;
112 kal_uint16 sid;
113 kal_uint16 nid;
114} cssSidNid;
115
116typedef struct
117{
118 kal_uint16 mpssPilotStrengthThresh;
119 kal_uint32 tBsr[CSS_1X_NUM_T_BSR];
120 kal_uint32 reservedTBsr[CSS_1X_NUM_T_BSR_MAX-CSS_1X_NUM_T_BSR]; /* reserved for possible expansion of TBsr; delete once max is reached */
121 kal_uint32 tAvoidance[CSS_1X_NUM_T_AVOIDANCE];
122 kal_uint32 reservedTAvoid[CSS_1X_NUM_T_AVOIDANCE_MAX-CSS_1X_NUM_T_AVOIDANCE]; /* reserved for possible expansion of TAvoidance; delete once max is reached */
123 kal_uint16 manualAvoid1XSys[MAX_MANUAL_AVOID_1XSYS];
124 kal_uint32 tPsDelay;
125 kal_uint32 tEmergencySysLostScan;
126 cssSidNid operSidNid; /* Operator SID/NID of the first MRU entry */
127} css1xDbmParameters;
128
129typedef struct
130{
131 kal_uint16 mpssPilotStrengthThresh; /* unused for now */
132 kal_uint32 tBsr[CSS_DO_NUM_T_BSR];
133 kal_uint32 reservedTBsr[CSS_DO_NUM_T_BSR_MAX-CSS_DO_NUM_T_BSR]; /* reserved for possible expansion of TBsr; delete once max is reached */
134 kal_uint32 tAvoidance[CSS_DO_NUM_T_AVOIDANCE]; /* unused for now */
135 kal_uint32 reservedTAvoid[CSS_DO_NUM_T_AVOIDANCE_MAX-CSS_DO_NUM_T_AVOIDANCE]; /* reserved for possible expansion of TAvoidance; delete once max is reached */
136} cssDODbmParameters;
137
138typedef struct
139{
140#ifdef MTK_DEV_C2K_IRAT
141 cssChannleLockInfo chnlInfo;
142#endif
143 kal_uint16 roamIndForNonPrlSysButHomeInNam;
144 kal_uint8 homeEriValNum;
145 kal_uint16 homeEriVals[MAX_ERI_HOME_VALUES];
146 kal_uint8 intlEriValNum; /* international */
147 kal_uint16 intlEriVals[MAX_ERI_INTERNATIONAL_VALUES];
148} cssMiscDbmParameters;
149
150/* do not modify segment definitions below. To add new parameters, use structures above */
151typedef struct
152{
153 css1xDbmParameters data;
154 kal_uint16 checksum; /* checksum will be calculated on the data only. */
155 kal_uint8 padding[DBM_CSS_1X_SIZE - sizeof(kal_uint16) - sizeof(css1xDbmParameters)];
156} css1xDbmSegment;
157
158typedef struct
159{
160 cssDODbmParameters data;
161 kal_uint16 checksum; /* checksum will be calculated on the data only. */
162 kal_uint8 padding[DBM_CSS_DO_SIZE - sizeof(kal_uint16) - sizeof(cssDODbmParameters)];
163} cssDODbmSegment;
164
165typedef struct
166{
167 kal_uint32 sbp_id; /* SIM SBP ID */
168 cssMiscDbmParameters data;
169 kal_uint16 checksum; /* checksum will be calculated on the data only. */
170 kal_uint8 padding[DBM_CSS_MISC_SIZE - sizeof(kal_uint16) - sizeof(cssMiscDbmParameters)];
171} cssMiscDbmSegment;
172
173typedef struct
174{
175 SysCdmaBandT CdmaBand[MAX_MRU_RECORDS];
176 kal_uint16 FreqChan[MAX_MRU_RECORDS];
177} CssDbmDataT;
178#endif