blob: a0a6981dffe45ea853919da16add7728fd429125 [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 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* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.
38*
39* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
40*
41* Copyright (c) 1998-2010 VIA Telecom, Inc. All rights reserved.
42*
43*************************************************************/
44#ifndef _LMDTDSO_H_
45#define _LMDTDSO_H_
46
47/*****************************************************************************
48*
49* FILE NAME : lmdtdso.h
50*
51* DESCRIPTION : Test Data Service Option definitions
52*
53* HISTORY :
54* See Log at end of file
55*
56*****************************************************************************/
57
58/*----------------------------------------------------------------------------
59 Include Files
60----------------------------------------------------------------------------*/
61
62#include "sysapi.h"
63
64/*----------------------------------------------------------------------------
65 Test Data Service Option Defines and Macros
66----------------------------------------------------------------------------*/
67
68/* service option control counter response size */
69#ifdef SYS_OPTION_SCH_RAM_INUSE
70
71/* this is 3 times the max of (FUND_TDSO_RX_MAX, SUPP_TDSO_RX_MAX, PDU_TDSO_RX_MAX,
72 FUND_TDSO_TX_MAX, SUPP_TDSO_TX_MAX) */
73#define MAX_COUNTER_RESPONSE_SIZE (3 * PDU_TDSO_RX_MAX)
74
75#else
76
77/* this is 3 times the max of (FUND_TDSO_RX_MAX, FUND_TDSO_TX_MAX) */
78#define MAX_COUNTER_RESPONSE_SIZE (3 * FUND_TDSO_RX_MAX)
79
80#endif /* SYS_OPTION_SCH_RAM_INUSE */
81
82/*----------------------------------------------------------------------------
83 Test Data Service Option Typedefs
84----------------------------------------------------------------------------*/
85
86/* Traffic (channel) Direction type */
87typedef enum
88{
89 FUND_FORWARD = 0,
90 FUND_REVERSE,
91#ifdef SYS_OPTION_SCH_RAM_INUSE
92 SUPP0_FORWARD,
93 SUPP0_REVERSE,
94#endif /* SYS_OPTION_SCH_RAM_INUSE */
95 TDSO_MAX_DIR
96} TdsoDirectionT;
97
98/* Frame Type Index based on MuxOption and TrafficType
99 * This index can and will be used to access parameters
100 * from many fast look up tables. */
101typedef enum
102{
103 /* muxoption: 0x01 */
104 FTI_1X_171_FUND = 0, /* primary */
105 FTI_1X_168_FUND, /* secondary */
106
107 /* muxoption: 0x02 */
108 FTI_1X_266_FUND,
109 FTI_1X_262_FUND,
110
111#ifdef SYS_OPTION_SCH_RAM_INUSE
112 /* muxoption: 0x03 */
113 FTI_1X_171_SUPP,
114 FTI_1X_168_SUPP,
115
116 /* muxoption: 0x04 */
117 FTI_1X_266_SUPP,
118 FTI_1X_262_SUPP,
119
120 /* muxoptions: 0x809, 0x811, 0x821 */
121 FTI_2X_170_PRI,
122 FTI_2X_170_SEC,
123 FTI_4X_170_PRI,
124 FTI_4X_170_SEC,
125 FTI_8X_170_PRI,
126 FTI_8X_170_SEC,
127
128 /* muxoptions: 0x80A, 0x812, 0x822 */
129 FTI_2X_266_PRI,
130 FTI_2X_266_SEC,
131 FTI_4X_266_PRI,
132 FTI_4X_266_SEC,
133 FTI_8X_266_PRI,
134 FTI_8X_266_SEC,
135
136 /* muxoptions: 0x905 0x909, 0x911, 0x921 */
137 FTI_1X_346_PRI,
138 FTI_1X_346_SEC,
139 FTI_2X_346_PRI,
140 FTI_2X_346_SEC,
141 FTI_4X_346_PRI,
142 FTI_4X_346_SEC,
143 FTI_8X_346_PRI,
144 FTI_8X_346_SEC,
145
146 /* muxoptions: 0x906 0x90A, 0x912, 0x922 */
147 FTI_1X_538_PRI,
148 FTI_1X_538_SEC,
149 FTI_2X_538_PRI,
150 FTI_2X_538_SEC,
151 FTI_4X_538_PRI,
152 FTI_4X_538_SEC,
153 FTI_8X_538_PRI,
154 FTI_8X_538_SEC,
155#endif /* SYS_OPTION_SCH_RAM_INUSE */
156
157 FTI_MAX_SIZE
158} TdsoFrameTypeIndexT;
159
160/* Frame Params type */
161typedef struct
162{
163 kal_uint16 NumPdus;
164 kal_uint16 NumBits;
165 kal_uint16 PadBits;
166} TdsoFrameParamsT;
167
168/* Frame packet type */
169typedef enum
170{
171 FULL_PACKET = 0,
172 BLNK_PACKET
173} TdsoPacketTypeT;
174
175/* Data source used in the generation of local packets */
176typedef enum
177{
178 USE_PATTERN = 0,
179 USE_CIRBUF,
180 USE_ONES
181} TdsoDataSourceT;
182
183/* Frame activity types */
184typedef enum
185{
186 FA_DETERMINISTIC = 0,
187 FA_RANDOM
188} TdsoFrameActivityT;
189
190/* Control parameters */
191typedef struct
192{
193 kal_uint8 Nx;
194 TdsoFrameActivityT FrameActivity;
195 kal_uint32 OnThreshold;
196 kal_uint32 OffThreshold;
197 kal_uint8 TxOnPer;
198 kal_uint8 TxOffPer;
199 TdsoDataSourceT DataSource;
200 kal_uint8 DataPattern;
201} TdsoControlParmT;
202
203/* transition state definitions */
204typedef enum
205{
206 TDSO_STATE_OFF = 0,
207 TDSO_STATE_ON
208} TdsoStateT;
209
210typedef enum
211{
212 LAST_TIME = 0,
213 THIS_TIME,
214 NEXT_TIME,
215 MAX_TIME
216} TdsoTimeT;
217
218typedef struct
219{
220 kal_uint32 Value;
221 kal_uint32 Time;
222} TdsoSRNGT;
223
224/* Receive Counter Id Lookup Table type */
225typedef struct
226{
227 const kal_uint16 *FullRateTableP;
228 const kal_uint16 *BlnkRateTableP;
229 const kal_uint16 TableSize;
230} TdsoRxLookUpTableT;
231
232/* Receive frame counters on the fundicated channel
233 * NOTE: the order of these ids MUST match that described
234 * in section 3.8.1.4 - see GetFundRECCounters() */
235typedef enum
236{
237 FUND_TDSO_E1_R1 = 0,
238 FUND_TDSO_E1_RD,
239 FUND_TDSO_E1_RO,
240 FUND_TDSO_E1_RB,
241 FUND_TDSO_E1_RFL,
242 FUND_TDSO_E1_RE,
243 FUND_TDSO_E1_RERR,
244
245 FUND_TDSO_EN_RN,
246 FUND_TDSO_EN_RB,
247 FUND_TDSO_EN_RO,
248
249 FUND_TDSO_RX_MAX /* 10, check out MAX_COUNTER_RESPONSE_SIZE */
250} TdsoFundRxCntrT;
251
252/* Transmit frame counters on the fundicated channel
253 * NOTE: the order of these ids MUST match that described
254 * in section 3.8.2.3 - see GetFundTXCounters() */
255typedef enum
256{
257 FUND_TDSO_E1_T1 = 0,
258 FUND_TDSO_E1_TD,
259 FUND_TDSO_E1_TB,
260 FUND_TDSO_EB_TB,
261 FUND_TDSO_EB_TO,
262 FUND_TDSO_TX_MAX /* 5, check out MAX_COUNTER_RESPONSE_SIZE */
263} TdsoFundTxCntrT;
264
265#ifdef SYS_OPTION_SCH_RAM_INUSE
266
267/* Receive frame counters on the supplemental channel */
268typedef enum
269{
270 SUPP_TDSO_ENx_RNx = 0,
271 SUPP_TDSO_ENx_RERR,
272 SUPP_TDSO_ENx_RE,
273 SUPP_TDSO_ENx_RB,
274 SUPP_TDSO_EB_RB,
275 SUPP_TDSO_EB_RO,
276
277 SUPP_TDSO_RX_MAX /* 6, check out MAX_COUNTER_RESPONSE_SIZE */
278} TdsoSuppRxCntrT;
279
280/* Receive PDU counters for the supplemental channel
281 * NOTE: the order of these ids MUST match that described
282 * in section 3.8.2.2 - see GetSuppPERCounters() */
283typedef enum
284{
285 PDU_TDSO_E3_R3 = 0,
286 PDU_TDSO_E3_RERR,
287 PDU_TDSO_E3_RE,
288
289 PDU_TDSO_E2_R2,
290 PDU_TDSO_E2_RERR,
291 PDU_TDSO_E2_RE,
292
293 PDU_TDSO_E1a_R1a,
294 PDU_TDSO_E1a_RERR,
295 PDU_TDSO_E1a_RE,
296
297 PDU_TDSO_E1b_R1b,
298 PDU_TDSO_E1b_RERR,
299 PDU_TDSO_E1b_RE,
300
301 PDU_TDSO_RX_MAX /* 12, check out MAX_COUNTER_RESPONSE_SIZE */
302} TdsoRxPduCntrT;
303
304/* Transmit frame counters on the supplemental channel
305 * NOTE: the order of these ids MUST match that of
306 * SuppTXData.Counters[] - see GetSuppTXCounters() */
307typedef enum
308{
309 SUPP_TDSO_ENx_TNx = 0,
310 SUPP_TDSO_ENx_TB,
311 SUPP_TDSO_EB_TB,
312 SUPP_TDSO_EB_TO,
313
314 SUPP_TDSO_TX_MAX /* 5, check out MAX_COUNTER_RESPONSE_SIZE */
315} TdsoSuppTxCntrT;
316
317#endif /* SYS_OPTION_SCH_RAM_INUSE */
318
319/* signaling type */
320typedef enum
321{
322 SIGTYPE_NONE = 0,
323 SIGTYPE_BLNKnBURST
324} TdsoSigTypeT;
325
326
327/*
328 * Definitions used in processing the Service Option Control Message
329 */
330
331typedef PACKED_PREFIX struct
332{
333 kal_uint8 CtlRecType;
334 PACKED_PREFIX union /* the meaning of the 2nd byte is dependent on CtlRecType */
335 {
336 kal_uint8 CtrlCode;
337 kal_uint8 VectorId;
338 } PACKED_POSTFIX Directive;
339 kal_uint8 Misc; /* ChannelDirection:2, CopyCounters:1, ClearCounters:1,
340 DataSource:1, FrameSource:2, FrameActivity:1 */
341 kal_uint8 TestOptions;
342 kal_uint8 Data[1]; /* NumCirBufFrames, On2OffProb, Off2OnProb, TxOnPer, TxOffPer, DataPat */
343} PACKED_POSTFIX LmdTdsoControlDataT;
344
345/* channel direction field */
346typedef enum
347{
348 CHANDIR_BOTH = 0,
349 CHANDIR_FORWARD,
350 CHANDIR_REVERSE
351} TdsoChannelDirectionT;
352
353/* control record type field */
354typedef enum
355{
356 DIRECTIVE_CONTROLS_FOR_ALL_CHANNELS = 0,
357 DIRECTIVE_CONTROLS_FOR_FCH,
358 DIRECTIVE_CONTROLS_FOR_DCCH,
359 DIRECTIVE_CONTROLS_FOR_SCH0,
360 DIRECTIVE_CONTROLS_FOR_SCH1,
361
362 DIRECTIVE_CNTR_RETRIEVAL_FOR_FCH,
363 DIRECTIVE_CNTR_RETRIEVAL_FOR_DCCH,
364 DIRECTIVE_CNTR_RETRIEVAL_FOR_SCH0,
365 DIRECTIVE_CNTR_RETRIEVAL_FOR_SCH1
366} TdsoControlRecTypeT;
367
368/* vector id field */
369typedef enum
370{
371 VECTORID_FER = 0, /* 0 */
372 VECTORID_PER, /* 1 */
373 VECTORID_REC = VECTORID_PER, /* 1 */
374 VECTORID_TX /* 2 */
375} TdsoVectorIdT;
376
377/* counter response definitions */
378typedef struct
379{
380 kal_uint8 CtlRecType;
381 kal_uint8 VectorId;
382 kal_uint8 Counters[MAX_COUNTER_RESPONSE_SIZE];
383} TdsoCountersResponseT;
384
385/*
386 * Definitions used in generating spy data
387 */
388/* FER structure */
389typedef struct
390{
391 kal_uint32 Good;
392 kal_uint32 Bad;
393 kal_uint32 Total;
394 kal_uint16 FER;
395} TdsoRxFerT;
396
397/* Fch/Dcch Transmit spy structure */
398typedef struct
399{
400 kal_uint16 MuxOption;
401 kal_uint32 Counters[FUND_TDSO_TX_MAX];
402} TdsoFundTxSpyT;
403
404/* Fch/Dcch Receive spy structure */
405typedef struct
406{
407 kal_uint16 MuxOption;
408 kal_uint32 Counters[FUND_TDSO_RX_MAX];
409} TdsoFundRxSpyT;
410
411#ifdef SYS_OPTION_SCH_RAM_INUSE
412
413/* Sch Transmit spy structure */
414typedef struct
415{
416 kal_uint16 MuxOption;
417 kal_uint16 Rate; /* N times base rate */
418 kal_uint32 Counters[SUPP_TDSO_TX_MAX];
419} TdsoSuppTxSpyT;
420
421/* Sch Pdu Receive spy structure */
422typedef struct
423{
424 kal_uint16 MuxOption;
425 kal_uint32 Counters[PDU_TDSO_RX_MAX];
426} TdsoSuppPduRxSpyT;
427
428/* Sch Receive spy structure */
429typedef struct
430{
431 kal_uint16 MuxOption;
432 kal_uint16 Rate; /* N times base rate */
433 kal_uint32 Counters[SUPP_TDSO_RX_MAX];
434} TdsoSuppRxSpyT;
435
436#endif /* SYS_OPTION_SCH_RAM_INUSE */
437
438/* Fch/Dcch/Sch Receive FER spy structure */
439typedef struct
440{
441 kal_uint16 MuxOption;
442 TdsoRxFerT FullRate;
443} TdsoRxFerSpyT;
444
445/* TDSO Functional Trace Types */
446typedef enum
447{
448 LMD_TDSO_FUNC_RESYNC_CHANNEL = 0,
449 LMD_TDSO_FUNC_COMPARE_NUMPDUS_DIFFER = 1,
450 LMD_TDSO_FUNC_COMPARE_NUMBITS_DIFFER = 2,
451 LMD_TDSO_FUNC_COMPARE_DATA_DIFFER = 3,
452 LMD_TDSO_FUNC_COMPARE_IDENTICAL = 4,
453 LMD_TDSO_FUNC_NOT_COMPARED = 5,
454 LMD_TDSO_FUNC_SSO_CONNECT = 6,
455 LMD_TDSO_FUNC_SSO_PROCESSING = 7,
456 LMD_TDSO_FUNC_SSO_DISCONNECT = 8,
457 LMD_TDSO_FUNC_CONTROL_MSG = 9,
458 LMD_TDSO_FUNC_CNTRRET_DIR = 10,
459 LMD_TDSO_FUNC_CONTROL_DIR = 11,
460 LMD_TDSO_PROC_RESET_CHANNEL = 12,
461 LMD_TDSO_PROC_SETUP_CHANNEL = 13,
462 LMD_TDSO_FUNC_DEBUG_RX_PACKET = 14
463} TdsoFunctionalTraceTypeT;
464
465/* TDSO Processing Trace Types */
466typedef enum
467{
468 LMD_TDSO_PROC_BUILD_CIRBUF = 0,
469 LMD_TDSO_PROC_GEN_INFO_BITS = 1,
470 LMD_TDSO_PROC_GEN_BLNK_BITS = 2,
471 LMD_TDSO_PROC_ADVANCE_OFFSET = 3,
472 LMD_TDSO_PROC_SET_CIRBUF_SIZE = 4
473} TdsoProcessingTraceTypeT;
474
475/*----------------------------------------------------------------------------
476 Global Variables
477----------------------------------------------------------------------------*/
478extern kal_uint32 TdsoRNG[]; /* Current Random Number */
479extern kal_uint16 TdsoBn[]; /* Circular Buffer Size */
480extern kal_uint8 * const TdsoCirBufP[]; /* Circular Buffer Pointers */
481
482/*----------------------------------------------------------------------------
483 External Function Prototypes
484----------------------------------------------------------------------------*/
485extern void TdsoBuildCirBuf ( TdsoDirectionT Direction );
486
487
488/*****************************************************************************
489* $Log: lmdtdso.h $
490* Revision 1.2 2004/03/25 11:55:23 fpeng
491* Updated from 6.0 CP 2.5.0
492* Revision 1.1 2003/05/12 15:31:54 fpeng
493* Initial revision
494* Revision 1.4 2002/07/15 18:36:31 vxnguyen
495* Added global Tdso data and funtion declarations.
496* Revision 1.3 2002/05/30 11:11:36 mshaver
497* Added VIA Technologies copyright notice.
498* Revision 1.2 2002/04/10 10:44:27 vxnguyen
499* Added compilor option SYS_OPTION_SCH_RAM_INUSE.
500* Revision 1.1 2002/02/07 16:56:39 vxnguyen
501* Initial revision
502*****************************************************************************/
503
504/*****************************************************************************
505* End of File
506*****************************************************************************/
507
508#endif
509